package xuan.utils.bazi.maps;

import java.util.*;

/**
 * 八字 - 基础常量
 *
 * @author 善待
 */
public class BaZiJiChuMap {

    /**
     * 月将、月将神（上一气+下一气为键）
     */
    public static final Map<String, List<String>> YUE_JIANG = new HashMap<String, List<String>>() {
        private static final long serialVersionUID = -1;

        {
            put("大寒雨水", Arrays.asList("子", "神后")); // 大寒至雨水：月将为子，月将神为神后
            put("冬至大寒", Arrays.asList("丑", "大吉"));
            put("小雪冬至", Arrays.asList("寅", "功曹"));
            put("霜降小雪", Arrays.asList("卯", "太冲"));
            put("秋分霜降", Arrays.asList("辰", "天罡"));
            put("处暑秋分", Arrays.asList("巳", "太乙"));
            put("大暑处暑", Arrays.asList("午", "胜光"));
            put("夏至大暑", Arrays.asList("未", "小吉"));
            put("小满夏至", Arrays.asList("申", "传送"));
            put("谷雨小满", Arrays.asList("酉", "从魁"));
            put("春分谷雨", Arrays.asList("戌", "河魁"));
            put("雨水春分", Arrays.asList("亥", "登明"));
        }
    };

    /**
     * 五不遇时（日干为键）
     */
    public static final Map<String, String> WU_BU_YU_SHI = new HashMap<String, String>() {
        private static final long serialVersionUID = -1;

        {
            put("甲", "庚午"); // 甲日庚午时
            put("乙", "辛巳");
            put("丙", "壬辰");
            put("丁", "癸卯");
            put("戊", "甲寅");
            put("己", "乙丑");
            put("庚", "丙子");
            put("辛", "丁酉");
            put("壬", "戊申");
            put("癸", "己未");
        }
    };

    /**
     * 地支对应生肖（地支为键）
     */
    public static final Map<String, String> DI_ZHI_SHENG_XIAO = new HashMap<String, String>() {
        private static final long serialVersionUID = -1;

        {
            put("子", "鼠");
            put("丑", "牛");
            put("寅", "虎");
            put("卯", "兔");
            put("辰", "龙");
            put("巳", "蛇");
            put("午", "马");
            put("未", "羊");
            put("申", "猴");
            put("酉", "鸡");
            put("戌", "狗");
            put("亥", "猪");
        }
    };

    /**
     * 地支相冲（地支为键）
     */
    public static final Map<String, String> DI_ZHI_CHONG = new HashMap<String, String>() {
        private static final long serialVersionUID = -1;

        {
            put("子", "午");
            put("丑", "未");
            put("寅", "申");
            put("卯", "酉");
            put("辰", "戌");
            put("巳", "亥");
            put("午", "子");
            put("未", "丑");
            put("申", "寅");
            put("酉", "卯");
            put("戌", "辰");
            put("亥", "巳");
        }
    };

    /**
     * 天干五行（天干为键）
     */
    public static final Map<String, String> TIAN_GAN_WU_XING = new HashMap<String, String>() {
        private static final long serialVersionUID = -1;

        {
            put("甲", "木");
            put("乙", "木");
            put("丙", "火");
            put("丁", "火");
            put("戊", "土");
            put("己", "土");
            put("庚", "金");
            put("辛", "金");
            put("壬", "水");
            put("癸", "水");
        }
    };

    /**
     * 地支五行（地支为键）
     */
    public static final Map<String, String> DI_ZHI_WU_XING = new HashMap<String, String>() {
        private static final long serialVersionUID = -1;

        {
            put("子", "水");
            put("丑", "土");
            put("寅", "木");
            put("卯", "木");
            put("辰", "土");
            put("巳", "火");
            put("午", "火");
            put("未", "土");
            put("申", "金");
            put("酉", "金");
            put("戌", "土");
            put("亥", "水");
        }
    };

    /**
     * 天干阴阳（天干为键）
     */
    public static final Map<String, String> TIAN_GAN_YIN_YANG = new HashMap<String, String>() {
        private static final long serialVersionUID = -1;

        {
            put("甲", "阳");
            put("乙", "阴");
            put("丙", "阳");
            put("丁", "阴");
            put("戊", "阳");
            put("己", "阴");
            put("庚", "阳");
            put("辛", "阴");
            put("壬", "阳");
            put("癸", "阴");
        }
    };

    /**
     * 地支阴阳（地支为键）
     */
    public static final Map<String, String> DI_ZHI_YIN_YANG = new HashMap<String, String>() {
        private static final long serialVersionUID = -1;

        {
            put("子", "阳");
            put("丑", "阴");
            put("寅", "阳");
            put("卯", "阴");
            put("辰", "阳");
            put("巳", "阴");
            put("午", "阳");
            put("未", "阴");
            put("申", "阳");
            put("酉", "阴");
            put("戌", "阳");
            put("亥", "阴");
        }
    };

    /**
     * 地支藏干（地支为键）
     */
    public static final Map<String, List<String>> DI_ZHI_CANG_GAN = new HashMap<String, List<String>>() {
        private static final long serialVersionUID = -1;

        {
            put("子", Collections.singletonList("癸"));
            put("丑", Arrays.asList("己", "癸", "辛"));
            put("寅", Arrays.asList("甲", "丙", "戊"));
            put("卯", Collections.singletonList("乙"));
            put("辰", Arrays.asList("戊", "乙", "癸"));
            put("巳", Arrays.asList("丙", "庚", "戊"));
            put("午", Arrays.asList("丁", "己"));
            put("未", Arrays.asList("己", "丁", "乙"));
            put("申", Arrays.asList("庚", "壬", "戊"));
            put("酉", Collections.singletonList("辛"));
            put("戌", Arrays.asList("戊", "辛", "丁"));
            put("亥", Arrays.asList("壬", "甲"));
        }
    };

    /**
     * 纳音（干支为键）
     */
    public static final Map<String, String> NA_YIN = new HashMap<String, String>() {
        private static final long serialVersionUID = -1;

        {
            put("甲子", "海中金");
            put("丙寅", "炉中火");
            put("戊辰", "大林木");
            put("庚午", "路旁土");
            put("壬申", "剑锋金");
            put("甲戌", "山头火");
            put("丙子", "涧下水");
            put("戊寅", "城头土");
            put("庚辰", "白蜡金");
            put("壬午", "杨柳木");
            put("甲申", "泉中水");
            put("丙戌", "屋上土");
            put("戊子", "霹雳火");
            put("庚寅", "松柏木");
            put("壬辰", "长流水");
            put("甲午", "沙中金");
            put("丙申", "山下火");
            put("戊戌", "平地木");
            put("庚子", "壁上土");
            put("壬寅", "金箔金");
            put("甲辰", "覆灯火");
            put("丙午", "天河水");
            put("戊申", "大驿土");
            put("庚戌", "钗钏金");
            put("壬子", "桑柘木");
            put("甲寅", "大溪水");
            put("丙辰", "沙中土");
            put("戊午", "天上火");
            put("庚申", "石榴木");
            put("壬戌", "大海水");
            put("乙丑", "海中金");
            put("丁卯", "炉中火");
            put("己巳", "大林木");
            put("辛未", "路旁土");
            put("癸酉", "剑锋金");
            put("乙亥", "山头火");
            put("丁丑", "涧下水");
            put("己卯", "城头土");
            put("辛巳", "白蜡金");
            put("癸未", "杨柳木");
            put("乙酉", "泉中水");
            put("丁亥", "屋上土");
            put("己丑", "霹雳火");
            put("辛卯", "松柏木");
            put("癸巳", "长流水");
            put("乙未", "沙中金");
            put("丁酉", "山下火");
            put("己亥", "平地木");
            put("辛丑", "壁上土");
            put("癸卯", "金箔金");
            put("乙巳", "覆灯火");
            put("丁未", "天河水");
            put("己酉", "大驿土");
            put("辛亥", "钗钏金");
            put("癸丑", "桑柘木");
            put("乙卯", "大溪水");
            put("丁巳", "沙中土");
            put("己未", "天上火");
            put("辛酉", "石榴木");
            put("癸亥", "大海水");
        }
    };

    /**
     * 空亡（干支为键）
     */
    public static final Map<String, String> KONG_WANG = new HashMap<String, String>() {
        private static final long serialVersionUID = -1;

        {
            put("甲子", "戌亥");
            put("乙丑", "戌亥");
            put("丙寅", "戌亥");
            put("丁卯", "戌亥");
            put("戊辰", "戌亥");
            put("己巳", "戌亥");
            put("庚午", "戌亥");
            put("辛未", "戌亥");
            put("壬申", "戌亥");
            put("癸酉", "戌亥");
            put("甲戌", "申酉");
            put("乙亥", "申酉");
            put("丙子", "申酉");
            put("丁丑", "申酉");
            put("戊寅", "申酉");
            put("己卯", "申酉");
            put("庚辰", "申酉");
            put("辛巳", "申酉");
            put("壬午", "申酉");
            put("癸未", "申酉");
            put("甲申", "午未");
            put("乙酉", "午未");
            put("丙戌", "午未");
            put("丁亥", "午未");
            put("戊子", "午未");
            put("己丑", "午未");
            put("庚寅", "午未");
            put("辛卯", "午未");
            put("壬辰", "午未");
            put("癸巳", "午未");
            put("甲午", "辰巳");
            put("乙未", "辰巳");
            put("丙申", "辰巳");
            put("丁酉", "辰巳");
            put("戊戌", "辰巳");
            put("己亥", "辰巳");
            put("庚子", "辰巳");
            put("辛丑", "辰巳");
            put("壬寅", "辰巳");
            put("癸卯", "辰巳");
            put("甲辰", "寅卯");
            put("乙巳", "寅卯");
            put("丙午", "寅卯");
            put("丁未", "寅卯");
            put("戊申", "寅卯");
            put("己酉", "寅卯");
            put("庚戌", "寅卯");
            put("辛亥", "寅卯");
            put("壬子", "寅卯");
            put("癸丑", "寅卯");
            put("甲寅", "子丑");
            put("乙卯", "子丑");
            put("丙辰", "子丑");
            put("丁巳", "子丑");
            put("戊午", "子丑");
            put("己未", "子丑");
            put("庚申", "子丑");
            put("辛酉", "子丑");
            put("壬戌", "子丑");
            put("癸亥", "子丑");
        }
    };

    /**
     * 十神（日干+其他干支为键）
     */
    public static final Map<String, String> SHI_SHEN = new HashMap<String, String>() {
        private static final long serialVersionUID = -1;

        {
            put("甲甲", "比肩");
            put("甲乙", "劫财");
            put("甲丙", "食神");
            put("甲丁", "伤官");
            put("甲戊", "偏财");
            put("甲己", "正财");
            put("甲庚", "七杀");
            put("甲辛", "正官");
            put("甲壬", "偏印");
            put("甲癸", "正印");
            put("甲子", "正印");
            put("甲丑", "正财");
            put("甲寅", "比肩");
            put("甲卯", "劫财");
            put("甲辰", "偏财");
            put("甲巳", "食神");
            put("甲午", "伤官");
            put("甲未", "正财");
            put("甲申", "七杀");
            put("甲酉", "正官");
            put("甲戌", "偏财");
            put("甲亥", "偏印");

            put("乙甲", "劫财");
            put("乙乙", "比肩");
            put("乙丙", "伤官");
            put("乙丁", "食神");
            put("乙戊", "正财");
            put("乙己", "偏财");
            put("乙庚", "正官");
            put("乙辛", "七杀");
            put("乙壬", "正印");
            put("乙癸", "偏印");
            put("乙子", "偏印");
            put("乙丑", "偏财");
            put("乙寅", "劫财");
            put("乙卯", "比肩");
            put("乙辰", "正财");
            put("乙巳", "伤官");
            put("乙午", "食神");
            put("乙未", "偏财");
            put("乙申", "正官");
            put("乙酉", "七杀");
            put("乙戌", "正财");
            put("乙亥", "正印");

            put("丙甲", "偏印");
            put("丙乙", "正印");
            put("丙丙", "比肩");
            put("丙丁", "劫财");
            put("丙戊", "食神");
            put("丙己", "伤官");
            put("丙庚", "偏财");
            put("丙辛", "正财");
            put("丙壬", "七杀");
            put("丙癸", "正官");
            put("丙子", "正官");
            put("丙丑", "伤官");
            put("丙寅", "偏印");
            put("丙卯", "正印");
            put("丙辰", "食神");
            put("丙巳", "比肩");
            put("丙午", "劫财");
            put("丙未", "伤官");
            put("丙申", "偏财");
            put("丙酉", "正财");
            put("丙戌", "食神");
            put("丙亥", "七杀");

            put("丁甲", "正印");
            put("丁乙", "偏印");
            put("丁丙", "劫财");
            put("丁丁", "比肩");
            put("丁戊", "伤官");
            put("丁己", "食神");
            put("丁庚", "正财");
            put("丁辛", "偏财");
            put("丁壬", "正官");
            put("丁癸", "七杀");
            put("丁子", "七杀");
            put("丁丑", "食神");
            put("丁寅", "正印");
            put("丁卯", "偏印");
            put("丁辰", "伤官");
            put("丁巳", "劫财");
            put("丁午", "比肩");
            put("丁未", "食神");
            put("丁申", "正财");
            put("丁酉", "偏财");
            put("丁戌", "伤官");
            put("丁亥", "正官");

            put("戊甲", "七杀");
            put("戊乙", "正官");
            put("戊丙", "偏印");
            put("戊丁", "正印");
            put("戊戊", "比肩");
            put("戊己", "劫财");
            put("戊庚", "食神");
            put("戊辛", "伤官");
            put("戊壬", "偏财");
            put("戊癸", "正财");
            put("戊子", "正财");
            put("戊丑", "劫财");
            put("戊寅", "七杀");
            put("戊卯", "正官");
            put("戊辰", "比肩");
            put("戊巳", "偏印");
            put("戊午", "正印");
            put("戊未", "劫财");
            put("戊申", "食神");
            put("戊酉", "伤官");
            put("戊戌", "比肩");
            put("戊亥", "偏财");

            put("己甲", "正官");
            put("己乙", "七杀");
            put("己丙", "正印");
            put("己丁", "偏印");
            put("己戊", "劫财");
            put("己己", "比肩");
            put("己庚", "伤官");
            put("己辛", "食神");
            put("己壬", "正财");
            put("己癸", "偏财");
            put("己子", "偏财");
            put("己丑", "比肩");
            put("己寅", "正官");
            put("己卯", "七杀");
            put("己辰", "劫财");
            put("己巳", "正印");
            put("己午", "偏印");
            put("己未", "比肩");
            put("己申", "伤官");
            put("己酉", "食神");
            put("己戌", "劫财");
            put("己亥", "正财");

            put("庚甲", "偏财");
            put("庚乙", "正财");
            put("庚丙", "七杀");
            put("庚丁", "正官");
            put("庚戊", "偏印");
            put("庚己", "正印");
            put("庚庚", "比肩");
            put("庚辛", "劫财");
            put("庚壬", "食神");
            put("庚癸", "伤官");
            put("庚子", "伤官");
            put("庚丑", "正印");
            put("庚寅", "偏财");
            put("庚卯", "正财");
            put("庚辰", "偏印");
            put("庚巳", "七杀");
            put("庚午", "正官");
            put("庚未", "正印");
            put("庚申", "比肩");
            put("庚酉", "劫财");
            put("庚戌", "偏印");
            put("庚亥", "食神");

            put("辛甲", "正财");
            put("辛乙", "偏财");
            put("辛丙", "正官");
            put("辛丁", "七杀");
            put("辛戊", "正印");
            put("辛己", "偏印");
            put("辛庚", "劫财");
            put("辛辛", "比肩");
            put("辛壬", "伤官");
            put("辛癸", "食神");
            put("辛子", "食神");
            put("辛丑", "偏印");
            put("辛寅", "正财");
            put("辛卯", "偏财");
            put("辛辰", "正印");
            put("辛巳", "正官");
            put("辛午", "七杀");
            put("辛未", "偏印");
            put("辛申", "劫财");
            put("辛酉", "比肩");
            put("辛戌", "正印");
            put("辛亥", "伤官");

            put("壬甲", "食神");
            put("壬乙", "伤官");
            put("壬丙", "偏财");
            put("壬丁", "正财");
            put("壬戊", "七杀");
            put("壬己", "正官");
            put("壬庚", "偏印");
            put("壬辛", "正印");
            put("壬壬", "比肩");
            put("壬癸", "劫财");
            put("壬子", "劫财");
            put("壬丑", "正官");
            put("壬寅", "食神");
            put("壬卯", "伤官");
            put("壬辰", "七杀");
            put("壬巳", "偏财");
            put("壬午", "正财");
            put("壬未", "正官");
            put("壬申", "偏印");
            put("壬酉", "正印");
            put("壬戌", "七杀");
            put("壬亥", "比肩");

            put("癸甲", "伤官");
            put("癸乙", "食神");
            put("癸丙", "正财");
            put("癸丁", "偏财");
            put("癸戊", "正官");
            put("癸己", "七杀");
            put("癸庚", "正印");
            put("癸辛", "偏印");
            put("癸壬", "劫财");
            put("癸癸", "比肩");
            put("癸子", "比肩");
            put("癸丑", "七杀");
            put("癸寅", "伤官");
            put("癸卯", "食神");
            put("癸辰", "正官");
            put("癸巳", "正财");
            put("癸午", "偏财");
            put("癸未", "七杀");
            put("癸申", "正印");
            put("癸酉", "偏印");
            put("癸戌", "正官");
            put("癸亥", "劫财");
        }
    };

    /**
     * 十二长生（天干+地支为键）
     */
    public static final Map<String, String> SHI_ER_ZHANG_SHENG = new HashMap<String, String>() {
        private static final long serialVersionUID = -1;

        {
            put("甲子", "沐浴");
            put("甲丑", "冠带");
            put("甲寅", "临官");
            put("甲卯", "帝旺");
            put("甲辰", "衰");
            put("甲巳", "病");
            put("甲午", "死");
            put("甲未", "墓");
            put("甲申", "绝");
            put("甲酉", "胎");
            put("甲戌", "养");
            put("甲亥", "长生");
            put("乙子", "病");
            put("乙丑", "衰");
            put("乙寅", "帝旺");
            put("乙卯", "临官");
            put("乙辰", "冠带");
            put("乙巳", "沐浴");
            put("乙午", "长生");
            put("乙未", "养");
            put("乙申", "胎");
            put("乙酉", "绝");
            put("乙戌", "墓");
            put("乙亥", "死");
            put("丙子", "胎");
            put("丙丑", "养");
            put("丙寅", "长生");
            put("丙卯", "沐浴");
            put("丙辰", "冠带");
            put("丙巳", "临官");
            put("丙午", "帝旺");
            put("丙未", "衰");
            put("丙申", "病");
            put("丙酉", "死");
            put("丙戌", "墓");
            put("丙亥", "绝");
            put("丁子", "绝");
            put("丁丑", "墓");
            put("丁寅", "死");
            put("丁卯", "病");
            put("丁辰", "衰");
            put("丁巳", "帝旺");
            put("丁午", "临官");
            put("丁未", "冠带");
            put("丁申", "沐浴");
            put("丁酉", "长生");
            put("丁戌", "养");
            put("丁亥", "胎");
            put("戊子", "胎");
            put("戊丑", "养");
            put("戊寅", "长生");
            put("戊卯", "沐浴");
            put("戊辰", "冠带");
            put("戊巳", "临官");
            put("戊午", "帝旺");
            put("戊未", "衰");
            put("戊申", "病");
            put("戊酉", "死");
            put("戊戌", "墓");
            put("戊亥", "绝");
            put("己子", "绝");
            put("己丑", "墓");
            put("己寅", "死");
            put("己卯", "病");
            put("己辰", "衰");
            put("己巳", "帝旺");
            put("己午", "临官");
            put("己未", "冠带");
            put("己申", "沐浴");
            put("己酉", "长生");
            put("己戌", "养");
            put("己亥", "胎");
            put("庚子", "死");
            put("庚丑", "墓");
            put("庚寅", "绝");
            put("庚卯", "胎");
            put("庚辰", "养");
            put("庚巳", "长生");
            put("庚午", "沐浴");
            put("庚未", "冠带");
            put("庚申", "临官");
            put("庚酉", "帝旺");
            put("庚戌", "衰");
            put("庚亥", "病");
            put("辛子", "长生");
            put("辛丑", "养");
            put("辛寅", "胎");
            put("辛卯", "绝");
            put("辛辰", "墓");
            put("辛巳", "死");
            put("辛午", "病");
            put("辛未", "衰");
            put("辛申", "帝旺");
            put("辛酉", "临官");
            put("辛戌", "冠带");
            put("辛亥", "沐浴");
            put("壬子", "帝旺");
            put("壬丑", "衰");
            put("壬寅", "病");
            put("壬卯", "死");
            put("壬辰", "墓");
            put("壬巳", "绝");
            put("壬午", "胎");
            put("壬未", "养");
            put("壬申", "长生");
            put("壬酉", "沐浴");
            put("壬戌", "冠带");
            put("壬亥", "临官");
            put("癸子", "临官");
            put("癸丑", "冠带");
            put("癸寅", "沐浴");
            put("癸卯", "长生");
            put("癸辰", "养");
            put("癸巳", "胎");
            put("癸午", "绝");
            put("癸未", "墓");
            put("癸申", "死");
            put("癸酉", "病");
            put("癸戌", "衰");
            put("癸亥", "帝旺");
        }
    };

    /**
     * 五行旺衰（月支为键）
     */
    public static final Map<String, List<String>> WU_XING_WANG_SHUAI = new HashMap<String, List<String>>() {
        private static final long serialVersionUID = -1;

        {
            put("子", Arrays.asList("水旺", "木相", "金休", "土囚", "火死"));
            put("丑", Arrays.asList("土旺", "金相", "火休", "木囚", "水死"));
            put("寅", Arrays.asList("木旺", "火相", "水休", "金囚", "土死"));
            put("卯", Arrays.asList("木旺", "火相", "水休", "金囚", "土死"));
            put("辰", Arrays.asList("土旺", "金相", "火休", "木囚", "水死"));
            put("巳", Arrays.asList("火旺", "土相", "木休", "水囚", "金死"));
            put("午", Arrays.asList("火旺", "土相", "木休", "水囚", "金死"));
            put("未", Arrays.asList("土旺", "金相", "火休", "木囚", "水死"));
            put("申", Arrays.asList("金旺", "水相", "土休", "火囚", "木死"));
            put("酉", Arrays.asList("金旺", "水相", "土休", "火囚", "木死"));
            put("戌", Arrays.asList("土旺", "金相", "火休", "木囚", "水死"));
            put("亥", Arrays.asList("水旺", "木相", "金休", "土囚", "火死"));
        }
    };

    /**
     * 太岁类型（流年年支+出生年年支为键）
     */
    public static final Map<String, String> TAI_SUI_TYPE = new HashMap<String, String>() {
        private static final long serialVersionUID = -1;

        {
            put("子子", "值");
            put("子午", "冲");
            put("子卯", "刑");
            put("子未", "害");
            put("子酉", "破");
            put("丑丑", "值");
            put("丑未", "冲,刑");
            put("丑戌", "刑");
            put("丑午", "害");
            put("丑辰", "破");
            put("寅寅", "值");
            put("寅申", "冲,刑");
            put("寅巳", "害,刑");
            put("寅亥", "破");
            put("卯卯", "值");
            put("卯酉", "冲");
            put("卯子", "刑");
            put("卯辰", "害");
            put("卯午", "破");
            put("辰辰", "值,刑");
            put("辰戌", "冲");
            put("辰卯", "害");
            put("辰丑", "破");
            put("巳巳", "值");
            put("巳亥", "冲");
            put("巳寅", "害,刑");
            put("巳申", "破,刑");
            put("午午", "值,刑");
            put("午子", "冲");
            put("午丑", "害");
            put("午卯", "破");
            put("未未", "值");
            put("未丑", "冲,邢");
            put("未子", "害");
            put("未戌", "破");
            put("申申", "值");
            put("申寅", "冲,邢");
            put("申亥", "害");
            put("申巳", "破");
            put("酉酉", "值,邢");
            put("酉卯", "冲");
            put("酉戌", "害");
            put("酉子", "破");
            put("戌戌", "值");
            put("戌辰", "冲");
            put("戌丑", "刑");
            put("戌酉", "害");
            put("戌未", "破,邢");
            put("亥亥", "值,邢");
            put("亥巳", "冲");
            put("亥申", "害");
            put("亥寅", "破");
        }
    };

    /**
     * 《子平真诠》十二月令人元司令分野（地支为键）
     */
    public static final Map<String, List<String>> ZI_REN_YUAN = new HashMap<String, List<String>>() {
        private static final long serialVersionUID = -1;

        {
            put("寅", Arrays.asList("戊", "戊", "戊", "戊", "戊", "戊", "戊", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲"));
            put("卯", Arrays.asList("甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙"));
            put("辰", Arrays.asList("乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "癸", "癸", "癸", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊"));
            put("巳", Arrays.asList("戊", "戊", "戊", "戊", "戊", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙"));
            put("午", Arrays.asList("丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "己", "己", "己", "己", "己", "己", "己", "己", "己", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁"));
            put("未", Arrays.asList("丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "乙", "乙", "乙", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己"));
            put("申", Arrays.asList("己", "己", "己", "己", "己", "己", "己", "戊", "戊", "戊", "壬", "壬", "壬", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚"));
            put("酉", Arrays.asList("庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛"));
            put("戌", Arrays.asList("辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "丁", "丁", "丁", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊"));
            put("亥", Arrays.asList("戊", "戊", "戊", "戊", "戊", "戊", "戊", "甲", "甲", "甲", "甲", "甲", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬"));
            put("子", Arrays.asList("壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸"));
            put("丑", Arrays.asList("癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "辛", "辛", "辛", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己"));
        }
    };

    /**
     * 《渊海子平》十二月令人元司令分野（地支为键）
     */
    public static final Map<String, List<String>> YUAN_REN_YUAN = new HashMap<String, List<String>>() {
        private static final long serialVersionUID = -1;

        {
            put("寅", Arrays.asList("戊", "戊", "戊", "戊", "戊", "戊", "戊", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲"));
            put("卯", Arrays.asList("甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙"));
            put("辰", Arrays.asList("乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "癸", "癸", "癸", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊"));
            put("巳", Arrays.asList("戊", "戊", "戊", "戊", "戊", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙"));
            put("午", Arrays.asList("丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁"));
            put("未", Arrays.asList("丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "乙", "乙", "乙", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己"));
            put("申", Arrays.asList("己", "己", "己", "己", "己", "己", "己", "戊", "戊", "戊", "壬", "壬", "壬", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚"));
            put("酉", Arrays.asList("庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛"));
            put("戌", Arrays.asList("辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "丁", "丁", "丁", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊"));
            put("亥", Arrays.asList("戊", "戊", "戊", "戊", "戊", "戊", "戊", "甲", "甲", "甲", "甲", "甲", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬"));
            put("子", Arrays.asList("壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸"));
            put("丑", Arrays.asList("癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "辛", "辛", "辛", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己"));
        }
    };

    /**
     * 《星平会海》十二月令人元司令分野（地支为键）
     */
    public static final Map<String, List<String>> XING_REN_YUAN = new HashMap<String, List<String>>() {
        private static final long serialVersionUID = -1;

        {
            put("寅", Arrays.asList("戊", "戊", "戊", "戊", "戊", "戊", "戊", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲"));
            put("卯", Arrays.asList("甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙"));
            put("辰", Arrays.asList("乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "癸", "癸", "癸", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊"));
            put("巳", Arrays.asList("戊", "戊", "戊", "戊", "戊", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙"));
            put("午", Arrays.asList("丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "己", "己", "己", "己", "己", "己", "己", "己", "己", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁"));
            put("未", Arrays.asList("丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "乙", "乙", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己"));
            put("申", Arrays.asList("己", "己", "己", "己", "己", "己", "己", "戊", "戊", "戊", "壬", "壬", "壬", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚"));
            put("酉", Arrays.asList("庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛"));
            put("戌", Arrays.asList("辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "丁", "丁", "丁", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊"));
            put("亥", Arrays.asList("戊", "戊", "戊", "戊", "戊", "戊", "戊", "甲", "甲", "甲", "甲", "甲", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬"));
            put("子", Arrays.asList("壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸"));
            put("丑", Arrays.asList("癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "辛", "辛", "辛", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己"));
        }
    };

    /**
     * 《三命通会》十二月令人元司令分野（地支为键）
     */
    public static final Map<String, List<String>> SAN_REN_YUAN = new HashMap<String, List<String>>() {
        private static final long serialVersionUID = -1;

        {
            put("寅", Arrays.asList("己", "己", "己", "己", "己", "己", "己", "丙", "丙", "丙", "丙", "丙", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲"));
            put("卯", Arrays.asList("甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "癸", "癸", "癸", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙"));
            put("辰", Arrays.asList("乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "癸", "癸", "癸", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊"));
            put("巳", Arrays.asList("戊", "戊", "戊", "戊", "戊", "戊", "戊", "庚", "庚", "庚", "庚", "庚", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙"));
            put("午", Arrays.asList("丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "乙", "乙", "乙", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁"));
            put("未", Arrays.asList("丁", "丁", "丁", "丁", "丁", "丁", "丁", "乙", "乙", "乙", "乙", "乙", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己"));
            put("申", Arrays.asList("己", "己", "己", "己", "己", "己", "己", "戊", "戊", "戊", "壬", "壬", "壬", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚"));
            put("酉", Arrays.asList("庚", "庚", "庚", "庚", "庚", "庚", "庚", "丁", "丁", "丁", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛"));
            put("戌", Arrays.asList("辛", "辛", "辛", "辛", "辛", "辛", "辛", "丁", "丁", "丁", "丁", "丁", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊"));
            put("亥", Arrays.asList("戊", "戊", "戊", "戊", "戊", "戊", "戊", "甲", "甲", "甲", "甲", "甲", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬"));
            put("子", Arrays.asList("壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "辛", "辛", "辛", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸"));
            put("丑", Arrays.asList("癸", "癸", "癸", "癸", "癸", "癸", "癸", "辛", "辛", "辛", "辛", "辛", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己"));
        }
    };

    /**
     * 《神峰通考》十二月令人元司令分野（地支为键）
     */
    public static final Map<String, List<String>> SHEN_REN_YUAN = new HashMap<String, List<String>>() {
        private static final long serialVersionUID = -1;

        {
            put("寅", Arrays.asList("戊", "戊", "戊", "戊", "戊", "戊", "戊", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲"));
            put("卯", Arrays.asList("甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙"));
            put("辰", Arrays.asList("乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "癸", "癸", "癸", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊"));
            put("巳", Arrays.asList("戊", "戊", "戊", "戊", "戊", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙"));
            put("午", Arrays.asList("丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "己", "己", "己", "己", "己", "己", "己", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁"));
            put("未", Arrays.asList("丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "乙", "乙", "乙", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己"));
            put("申", Arrays.asList("戊", "戊", "戊", "戊", "戊", "戊", "戊", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚"));
            put("酉", Arrays.asList("庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛"));
            put("戌", Arrays.asList("辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "丁", "丁", "丁", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊"));
            put("亥", Arrays.asList("戊", "戊", "戊", "戊", "戊", "戊", "戊", "甲", "甲", "甲", "甲", "甲", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬"));
            put("子", Arrays.asList("壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸"));
            put("丑", Arrays.asList("癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "辛", "辛", "辛", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己"));
        }
    };

    /**
     * 【万育吾之法诀】十二月令人元司令分野（地支为键）
     */
    public static final Map<String, List<String>> WAN_REN_YUAN = new HashMap<String, List<String>>() {
        private static final long serialVersionUID = -1;

        {
            put("寅", Arrays.asList("己", "己", "己", "己", "己", "丙", "丙", "丙", "丙", "丙", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲", "甲"));
            put("卯", Arrays.asList("甲", "甲", "甲", "甲", "甲", "甲", "甲", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙", "乙"));
            put("辰", Arrays.asList("乙", "乙", "乙", "乙", "乙", "乙", "乙", "壬", "壬", "壬", "壬", "壬", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊"));
            put("巳", Arrays.asList("戊", "戊", "戊", "戊", "戊", "戊", "戊", "庚", "庚", "庚", "庚", "庚", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙", "丙"));
            put("午", Arrays.asList("丙", "丙", "丙", "丙", "丙", "丙", "丙", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁", "丁"));
            put("未", Arrays.asList("丁", "丁", "丁", "丁", "丁", "丁", "丁", "甲", "甲", "甲", "甲", "甲", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己"));
            put("申", Arrays.asList("己", "己", "己", "己", "己", "壬", "壬", "壬", "壬", "壬", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚", "庚"));
            put("酉", Arrays.asList("庚", "庚", "庚", "庚", "庚", "庚", "庚", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛", "辛"));
            put("戌", Arrays.asList("辛", "辛", "辛", "辛", "辛", "辛", "辛", "丙", "丙", "丙", "丙", "丙", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊", "戊"));
            put("亥", Arrays.asList("戊", "戊", "戊", "戊", "戊", "甲", "甲", "甲", "甲", "甲", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬", "壬"));
            put("子", Arrays.asList("壬", "壬", "壬", "壬", "壬", "壬", "壬", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸", "癸"));
            put("丑", Arrays.asList("癸", "癸", "癸", "癸", "癸", "癸", "癸", "庚", "庚", "庚", "庚", "庚", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己", "己"));
        }
    };

    /**
     * 天干和干支的五行生克关系（天干+干支为键）
     */
    public static final Map<String, String> GAN_ZHI_WU_XING_SHENG_KE = new HashMap<String, String>() {
        private static final long serialVersionUID = -1;

        {
            put("甲甲", "身强"); // 甲+甲：身强（同我。甲同甲→木同木）
            put("甲乙", "身强"); // 甲+乙：身强（同我。甲同乙→木同木）
            put("甲丙", "身弱"); // 甲+丙：身弱（我生。甲生丙→木生火）
            put("甲丁", "身弱"); // 甲+丁：身弱（我生。甲生丁→木生火）
            put("甲戊", "身弱"); // 甲+戊：身弱（我克。甲克戌→木克土）
            put("甲己", "身弱"); // 甲+己：身弱（我克。甲克己→木克土）
            put("甲庚", "身弱"); // 甲+庚：身弱（克我。庚克甲→金克木）
            put("甲辛", "身弱"); // 甲+辛：身弱（克我。辛克甲→金克木）
            put("甲壬", "身强"); // 甲+壬：身强（生我。壬生甲→水生木）
            put("甲癸", "身强"); // 甲+癸：身强（生我。癸生甲→水生木）
            put("甲子", "身强"); // 甲+子：身强（生我。子生甲→水生木）
            put("甲丑", "身弱"); // 甲+丑：身弱（我克。甲克丑→木克土）
            put("甲寅", "身强"); // 甲+寅：身强（同我。甲同寅→木同木）
            put("甲卯", "身强"); // 甲+卯：身强（同我。甲同卯→木同木）
            put("甲辰", "身弱"); // 甲+辰：身弱（我克。甲克辰→木克土）
            put("甲巳", "身弱"); // 甲+巳：身弱（我生。甲生巳→木生火）
            put("甲午", "身弱"); // 甲+午：身弱（我生。甲生午→木生火）
            put("甲未", "身弱"); // 甲+未：身弱（我克。甲克未→木克土）
            put("甲申", "身弱"); // 甲+申：身弱（克我。申克甲→金克木）
            put("甲酉", "身弱"); // 甲+酉：身弱（克我。酉克甲→金克木）
            put("甲戌", "身弱"); // 甲+戌：身弱（我克。甲克戌→木克土）
            put("甲亥", "身强"); // 甲+亥：身强（生我。亥生甲→水生木）
            put("乙甲", "身强"); // 乙+甲：身强（同我。乙同甲→木同木）
            put("乙乙", "身强"); // 乙+乙：身强（同我。乙同乙→木同木）
            put("乙丙", "身弱"); // 乙+丙：身弱（我生。乙生丙→木生火）
            put("乙丁", "身弱"); // 乙+丁：身弱（我生。乙生丁→木生火）
            put("乙戊", "身弱"); // 乙+戊：身弱（我克。乙克戌→木克土）
            put("乙己", "身弱"); // 乙+己：身弱（我克。乙克己→木克土）
            put("乙庚", "身弱"); // 乙+庚：身弱（克我。庚克乙→金克木）
            put("乙辛", "身弱"); // 乙+辛：身弱（克我。辛克乙→金克木）
            put("乙壬", "身强"); // 乙+壬：身强（生我。壬生乙→水生木）
            put("乙癸", "身强"); // 乙+癸：身强（生我。癸生乙→水生木）
            put("乙子", "身强"); // 乙+子：身强（生我。子生乙→水生木）
            put("乙丑", "身弱"); // 乙+丑：身弱（我克。乙克丑→木克土）
            put("乙寅", "身强"); // 乙+寅：身强（同我。乙同寅→木同木）
            put("乙卯", "身强"); // 乙+卯：身强（同我。乙同卯→木同木）
            put("乙辰", "身弱"); // 乙+辰：身弱（我克。乙克辰→木克土）
            put("乙巳", "身弱"); // 乙+巳：身弱（我生。乙生巳→木生火）
            put("乙午", "身弱"); // 乙+午：身弱（我生。乙生午→木生火）
            put("乙未", "身弱"); // 乙+未：身弱（我克。乙克未→木克土）
            put("乙申", "身弱"); // 乙+申：身弱（克我。申克乙→金克木）
            put("乙酉", "身弱"); // 乙+酉：身弱（克我。酉克乙→金克木）
            put("乙戌", "身弱"); // 乙+戌：身弱（我克。乙克戌→木克土）
            put("乙亥", "身强"); // 乙+亥：身强（生我。亥生乙→水生木）
            put("丙甲", "身强"); // 丙+甲：身强（生我。甲生丙→木生火）
            put("丙乙", "身强"); // 丙+乙：身强（生我。乙生丙→木生火）
            put("丙丙", "身强"); // 丙+丙：身强（同我。丙同丙→火同火）
            put("丙丁", "身强"); // 丙+丁：身强（同我。丙同丁→火同火）
            put("丙戊", "身弱"); // 丙+戊：身弱（我生。丙生戊→火生土）
            put("丙己", "身弱"); // 丙+己：身弱（我生。丙生己→火生土）
            put("丙庚", "身弱"); // 丙+庚：身弱（我克。丙克庚→火克金）
            put("丙辛", "身弱"); // 丙+辛：身弱（我克。丙克辛→火克金）
            put("丙壬", "身弱"); // 丙+壬：身弱（克我。壬克丙→水克火）
            put("丙癸", "身弱"); // 丙+癸：身弱（克我。癸克丙→水克火）
            put("丙子", "身弱"); // 丙+子：身弱（克我。子克丙→水克火）
            put("丙丑", "身弱"); // 丙+丑：身弱（我生。丙生丑→火生土）
            put("丙寅", "身强"); // 丙+寅：身强（生我。丙生寅→木生火）
            put("丙卯", "身强"); // 丙+卯：身强（生我。丙生卯→木生火）
            put("丙辰", "身弱"); // 丙+辰：身弱（我生。丙生辰→火生土）
            put("丙巳", "身强"); // 丙+巳：身强（同我。丙同巳→火同火）
            put("丙午", "身强"); // 丙+午：身强（同我。丙同午→火同火）
            put("丙未", "身弱"); // 丙+未：身弱（我生。丙生未→火生土）
            put("丙申", "身弱"); // 丙+申：身弱（我克。丙克申→火克金）
            put("丙酉", "身弱"); // 丙+酉：身弱（我克。丙克酉→火克金）
            put("丙戌", "身弱"); // 丙+戌：身弱（我生。丙生戌→火生土）
            put("丙亥", "身弱"); // 丙+亥：身弱（克我。亥克丙→水克火）
            put("丁甲", "身强"); // 丁+甲：身强（生我。甲生丁→木生火）
            put("丁乙", "身强"); // 丁+乙：身强（生我。乙生丁→木生火）
            put("丁丙", "身强"); // 丁+丙：身强（同我。丁同丙→火同火）
            put("丁丁", "身强"); // 丁+丁：身强（同我。丁同丁→火同火）
            put("丁戊", "身弱"); // 丁+戊：身弱（我生。丁生戊→火生土）
            put("丁己", "身弱"); // 丁+己：身弱（我生。丁生己→火生土）
            put("丁庚", "身弱"); // 丁+庚：身弱（我克。丁克庚→火克金）
            put("丁辛", "身弱"); // 丁+辛：身弱（我克。丁克辛→火克金）
            put("丁壬", "身弱"); // 丁+壬：身弱（克我。壬克丁→水克火）
            put("丁癸", "身弱"); // 丁+癸：身弱（克我。癸克丁→水克火）
            put("丁子", "身弱"); // 丁+子：身弱（克我。子克丁→水克火）
            put("丁丑", "身弱"); // 丁+丑：身弱（我生。丁生丑→火生土）
            put("丁寅", "身强"); // 丁+寅：身强（生我。丁生寅→木生火）
            put("丁卯", "身强"); // 丁+卯：身强（生我。丁生卯→木生火）
            put("丁辰", "身弱"); // 丁+辰：身弱（我生。丁生辰→火生土）
            put("丁巳", "身强"); // 丁+巳：身强（同我。丁同巳→火同火）
            put("丁午", "身强"); // 丁+午：身强（同我。丁同午→火同火）
            put("丁未", "身弱"); // 丁+未：身弱（我生。丁生未→火生土）
            put("丁申", "身弱"); // 丁+申：身弱（我克。丁克申→火克金）
            put("丁酉", "身弱"); // 丁+酉：身弱（我克。丁克酉→火克金）
            put("丁戌", "身弱"); // 丁+戌：身弱（我生。丁生戌→火生土）
            put("丁亥", "身弱"); // 丁+亥：身弱（克我。亥克丁→水克火）
            put("戊甲", "身弱"); // 戊+甲：身弱（克我。甲克戊→木克土）
            put("戊乙", "身弱"); // 戊+乙：身弱（克我。乙克戊→木克土）
            put("戊丙", "身强"); // 戊+丙：身强（生我。丙生戊→火生土）
            put("戊丁", "身强"); // 戊+丁：身强（生我。丁生戊→火生土）
            put("戊戊", "身强"); // 戊+戊：身强（同我。戊同戊→土同土）
            put("戊己", "身强"); // 戊+己：身强（同我。戊同己→土同土）
            put("戊庚", "身弱"); // 戊+庚：身弱（我生。戊生庚→土生金）
            put("戊辛", "身弱"); // 戊+辛：身弱（我生。戊生辛→土生金）
            put("戊壬", "身弱"); // 戊+壬：身弱（我克。戊克壬→土克水）
            put("戊癸", "身弱"); // 戊+癸：身弱（我克。戊克癸→土克水）
            put("戊子", "身弱"); // 戊+子：身弱（我克。戊克子→土克水）
            put("戊丑", "身强"); // 戊+丑：身强（同我。戊同丑→土同土）
            put("戊寅", "身弱"); // 戊+寅：身弱（克我。寅克戊→木克土）
            put("戊卯", "身弱"); // 戊+卯：身弱（克我。卯克戊→木克土）
            put("戊辰", "身强"); // 戊+辰：身强（同我。戊同辰→土同土）
            put("戊巳", "身强"); // 戊+巳：身强（生我。巳生戊→火生土）
            put("戊午", "身强"); // 戊+午：身强（生我。午生戊→火生土）
            put("戊未", "身强"); // 戊+未：身强（同我。戊同未→土同土）
            put("戊申", "身弱"); // 戊+申：身弱（我生。戊生申→土生金）
            put("戊酉", "身弱"); // 戊+酉：身弱（我生。戊生酉→土生金）
            put("戊戌", "身强"); // 戊+戌：身强（同我。戊同戌→土同土）
            put("戊亥", "身弱"); // 戊+亥：身弱（我克。戊克亥→土克水）
            put("己甲", "身弱"); // 己+甲：身弱（克我。甲克己→木克土）
            put("己乙", "身弱"); // 己+乙：身弱（克我。乙克己→木克土）
            put("己丙", "身强"); // 己+丙：身强（生我。丙生己→火生土）
            put("己丁", "身强"); // 己+丁：身强（生我。丁生己→火生土）
            put("己戊", "身强"); // 己+戊：身强（同我。己同戊→土同土）
            put("己己", "身强"); // 己+己：身强（同我。己同己→土同土）
            put("己庚", "身弱"); // 己+庚：身弱（我生。己生庚→土生金）
            put("己辛", "身弱"); // 己+辛：身弱（我生。己生辛→土生金）
            put("己壬", "身弱"); // 己+壬：身弱（我克。己克壬→土克水）
            put("己癸", "身弱"); // 己+癸：身弱（我克。己克癸→土克水）
            put("己子", "身弱"); // 己+子：身弱（我克。己克子→土克水）
            put("己丑", "身强"); // 己+丑：身强（同我。己同丑→土同土）
            put("己寅", "身弱"); // 己+寅：身弱（克我。寅克己→木克土）
            put("己卯", "身弱"); // 己+卯：身弱（克我。卯克己→木克土）
            put("己辰", "身强"); // 己+辰：身强（同我。己同辰→土同土）
            put("己巳", "身强"); // 己+巳：身强（生我。巳生己→火生土）
            put("己午", "身强"); // 己+午：身强（生我。午生己→火生土）
            put("己未", "身强"); // 己+未：身强（同我。己同未→土同土）
            put("己申", "身弱"); // 己+申：身弱（我生。己生申→土生金）
            put("己酉", "身弱"); // 己+酉：身弱（我生。己生酉→土生金）
            put("己戌", "身强"); // 己+戌：身强（同我。己同戌→土同土）
            put("己亥", "身弱"); // 己+亥：身弱（我克。己克亥→土克水）
            put("庚甲", "身弱"); // 庚+甲：身弱（我克。庚克甲→金克木）
            put("庚乙", "身弱"); // 庚+乙：身弱（我克。庚克乙→金克木）
            put("庚丙", "身弱"); // 庚+丙：身弱（克我。丙克庚→火克金）
            put("庚丁", "身弱"); // 庚+丁：身弱（克我。丁克庚→火克金）
            put("庚戊", "身强"); // 庚+戊：身强（生我。戊生庚→土生金）
            put("庚己", "身强"); // 庚+己：身强（生我。己生庚→土生金）
            put("庚庚", "身强"); // 庚+庚：身强（同我。庚同庚→金同金）
            put("庚辛", "身强"); // 庚+辛：身强（同我。庚同辛→金同金）
            put("庚壬", "身弱"); // 庚+壬：身弱（我生。庚生壬→金生水）
            put("庚癸", "身弱"); // 庚+癸：身弱（我生。庚生癸→金生水）
            put("庚子", "身弱"); // 庚+子：身弱（我生。庚生子→金生水）
            put("庚丑", "身强"); // 庚+丑：身强（生我。丑生庚→土生金）
            put("庚寅", "身弱"); // 庚+寅：身弱（我克。庚克寅→金克木）
            put("庚卯", "身弱"); // 庚+卯：身弱（我克。庚克卯→金克木）
            put("庚辰", "身强"); // 庚+辰：身强（生我。辰生庚→土生金）
            put("庚巳", "身弱"); // 庚+巳：身弱（克我。巳克庚→火克金）
            put("庚午", "身弱"); // 庚+午：身弱（克我。午克庚→火克金）
            put("庚未", "身强"); // 庚+未：身强（生我。未生庚→土生金）
            put("庚申", "身强"); // 庚+申：身强（同我。庚同申→金同金）
            put("庚酉", "身强"); // 庚+酉：身强（同我。庚同酉→金同金）
            put("庚戌", "身强"); // 庚+戌：身强（生我。戌生庚→土生金）
            put("庚亥", "身弱"); // 庚+亥：身弱（我生。庚生亥→金生水）
            put("辛甲", "身弱"); // 辛+甲：身弱（我克。辛克甲→金克木）
            put("辛乙", "身弱"); // 辛+乙：身弱（我克。辛克乙→金克木）
            put("辛丙", "身弱"); // 辛+丙：身弱（克我。丙克辛→火克金）
            put("辛丁", "身弱"); // 辛+丁：身弱（克我。丁克辛→火克金）
            put("辛戊", "身强"); // 辛+戊：身强（生我。戊生辛→土生金）
            put("辛己", "身强"); // 辛+己：身强（生我。己生辛→土生金）
            put("辛庚", "身强"); // 辛+庚：身强（同我。辛同庚→金同金）
            put("辛辛", "身强"); // 辛+辛：身强（同我。辛同辛→金同金）
            put("辛壬", "身弱"); // 辛+壬：身弱（我生。辛生壬→金生水）
            put("辛癸", "身弱"); // 辛+癸：身弱（我生。辛生癸→金生水）
            put("辛子", "身弱"); // 辛+子：身弱（我生。辛生子→金生水）
            put("辛丑", "身强"); // 辛+丑：身强（生我。丑生辛→土生金）
            put("辛寅", "身弱"); // 辛+寅：身弱（我克。辛克寅→金克木）
            put("辛卯", "身弱"); // 辛+卯：身弱（我克。辛克卯→金克木）
            put("辛辰", "身强"); // 辛+辰：身强（生我。辰生辛→土生金）
            put("辛巳", "身弱"); // 辛+巳：身弱（克我。巳克辛→火克金）
            put("辛午", "身弱"); // 辛+午：身弱（克我。午克辛→火克金）
            put("辛未", "身强"); // 辛+未：身强（生我。未生辛→土生金）
            put("辛申", "身强"); // 辛+申：身强（同我。辛同申→金同金）
            put("辛酉", "身强"); // 辛+酉：身强（同我。辛同酉→金同金）
            put("辛戌", "身强"); // 辛+戌：身强（生我。戌生辛→土生金）
            put("辛亥", "身弱"); // 辛+亥：身弱（我生。辛生亥→金生水）
            put("壬甲", "身弱"); // 壬+甲：身弱（我生。壬生甲→水生木）
            put("壬乙", "身弱"); // 壬+乙：身弱（我生。壬生乙→水生木）
            put("壬丙", "身弱"); // 壬+丙：身弱（我克。壬克丙→水克火）
            put("壬丁", "身弱"); // 壬+丁：身弱（我克。壬克丁→水克火）
            put("壬戊", "身弱"); // 壬+戊：身弱（克我。戊克壬→土克水）
            put("壬己", "身弱"); // 壬+己：身弱（克我。己克壬→土克水）
            put("壬庚", "身强"); // 壬+庚：身强（生我。庚生壬→金生水）
            put("壬辛", "身强"); // 壬+辛：身强（生我。辛生壬→金生水）
            put("壬壬", "身强"); // 壬+壬：身强（同我。壬同壬→水同水）
            put("壬癸", "身强"); // 壬+癸：身强（同我。壬同癸→水同水）
            put("壬子", "身强"); // 壬+子：身强（同我。壬同子→水同水）
            put("壬丑", "身弱"); // 壬+丑：身弱（克我。丑克壬→土克水）
            put("壬寅", "身弱"); // 壬+寅：身弱（我生。寅生壬→水生木）
            put("壬卯", "身弱"); // 壬+卯：身弱（我生。卯生壬→水生木）
            put("壬辰", "身弱"); // 壬+辰：身弱（克我。辰克壬→土克水）
            put("壬巳", "身弱"); // 壬+巳：身弱（我克。壬克巳→水克火）
            put("壬午", "身弱"); // 壬+午：身弱（我克。壬克午→水克火）
            put("壬未", "身弱"); // 壬+未：身弱（克我。未克壬→土克水）
            put("壬申", "身强"); // 壬+申：身强（生我。申生壬→金生水）
            put("壬酉", "身强"); // 壬+酉：身强（生我。酉生壬→金生水）
            put("壬戌", "身弱"); // 壬+戌：身弱（克我。戌克壬→土克水）
            put("壬亥", "身强"); // 壬+亥：身强（同我。壬同亥→水同水）
            put("癸甲", "身弱"); // 癸+甲：身弱（我生。癸生甲→水生木）
            put("癸乙", "身弱"); // 癸+乙：身弱（我生。癸生乙→水生木）
            put("癸丙", "身弱"); // 癸+丙：身弱（我克。癸克丙→水克火）
            put("癸丁", "身弱"); // 癸+丁：身弱（我克。癸克丁→水克火）
            put("癸戊", "身弱"); // 癸+戊：身弱（克我。戊克癸→土克水）
            put("癸己", "身弱"); // 癸+己：身弱（克我。己克癸→土克水）
            put("癸庚", "身强"); // 癸+庚：身强（生我。庚生癸→金生水）
            put("癸辛", "身强"); // 癸+辛：身强（生我。辛生癸→金生水）
            put("癸壬", "身强"); // 癸+壬：身强（同我。癸同壬→水同水）
            put("癸癸", "身强"); // 癸+癸：身强（同我。癸同癸→水同水）
            put("癸子", "身强"); // 癸+子：身强（同我。癸同子→水同水）
            put("癸丑", "身弱"); // 癸+丑：身弱（克我。丑克癸→土克水）
            put("癸寅", "身弱"); // 癸+寅：身弱（我生。寅生癸→水生木）
            put("癸卯", "身弱"); // 癸+卯：身弱（我生。卯生癸→水生木）
            put("癸辰", "身弱"); // 癸+辰：身弱（克我。辰克癸→土克水）
            put("癸巳", "身弱"); // 癸+巳：身弱（我克。癸克巳→水克火）
            put("癸午", "身弱"); // 癸+午：身弱（我克。癸克午→水克火）
            put("癸未", "身弱"); // 癸+未：身弱（克我。未克癸→土克水）
            put("癸申", "身强"); // 癸+申：身强（生我。申生癸→金生水）
            put("癸酉", "身强"); // 癸+酉：身强（生我。酉生癸→金生水）
            put("癸戌", "身弱"); // 癸+戌：身弱（克我。戌克癸→土克水）
            put("癸亥", "身强"); // 癸+亥：身强（同我。癸同亥→水同水）
        }
    };

    /**
     * 具体法获取喜用神（天干+季节为键）
     */
    public static final Map<String, List<String>> XI_YONG_SHEN = new HashMap<String, List<String>>() {
        private static final long serialVersionUID = -1;

        {
            put("甲春", Arrays.asList("火", "土", "金"));
            put("甲夏", Arrays.asList("水", "木"));
            put("甲秋", Arrays.asList("水", "木"));
            put("甲冬", Arrays.asList("火", "金"));
            put("甲四季末", Arrays.asList("水", "土"));
            put("乙春", Arrays.asList("火", "土", "金"));
            put("乙夏", Arrays.asList("水", "木"));
            put("乙秋", Arrays.asList("水", "木"));
            put("乙冬", Arrays.asList("火", "金"));
            put("乙四季末", Arrays.asList("水", "土"));
            put("丙春", Arrays.asList("水", "土"));
            put("丙夏", Arrays.asList("金", "水"));
            put("丙秋", Arrays.asList("木", "火"));
            put("丙冬", Arrays.asList("木", "火", "土"));
            put("丙四季末", Arrays.asList("木", "火", "金"));
            put("丁春", Arrays.asList("水", "土"));
            put("丁夏", Arrays.asList("金", "水"));
            put("丁秋", Arrays.asList("木", "火"));
            put("丁冬", Arrays.asList("木", "火", "土"));
            put("丁四季末", Arrays.asList("木", "火", "金"));
            put("戊春", Arrays.asList("火", "土"));
            put("戊夏", Arrays.asList("金", "水", "木"));
            put("戊秋", Arrays.asList("火", "土"));
            put("戊冬", Arrays.asList("火", "土"));
            put("戊四季末", Arrays.asList("木", "金", "水"));
            put("己春", Arrays.asList("火", "土"));
            put("己夏", Arrays.asList("金", "水", "木"));
            put("己秋", Arrays.asList("火", "土"));
            put("己冬", Arrays.asList("火", "土"));
            put("己四季末", Arrays.asList("木", "金", "水"));
            put("庚春", Arrays.asList("土", "金"));
            put("庚夏", Arrays.asList("土", "水", "金"));
            put("庚秋", Arrays.asList("火", "木", "水"));
            put("庚冬", Arrays.asList("火", "土", "金"));
            put("庚四季末", Arrays.asList("水", "木", "火"));
            put("辛春", Arrays.asList("土", "金"));
            put("辛夏", Arrays.asList("土", "水", "金"));
            put("辛秋", Arrays.asList("火", "木", "水"));
            put("辛冬", Arrays.asList("火", "土", "金"));
            put("辛四季末", Arrays.asList("水", "木", "火"));
            put("壬春", Arrays.asList("金", "水"));
            put("壬夏", Arrays.asList("金", "水"));
            put("壬秋", Arrays.asList("木", "火", "土"));
            put("壬冬", Arrays.asList("木", "火", "土"));
            put("壬四季末", Arrays.asList("金", "水"));
            put("癸春", Arrays.asList("金", "水"));
            put("癸夏", Arrays.asList("金", "水"));
            put("癸秋", Arrays.asList("木", "火", "土"));
            put("癸冬", Arrays.asList("木", "火", "土"));
            put("癸四季末", Arrays.asList("金", "水"));
        }
    };

    /**
     * 五行对应方位（五行为键）
     */
    public static final Map<String, List<String>> WU_XING_FANG_WEI = new HashMap<String, List<String>>() {
        private static final long serialVersionUID = -1;

        {
            put("木", Arrays.asList("东", "东南"));
            put("火", Collections.singletonList("南"));
            put("土", Arrays.asList("西南", "东北"));
            put("金", Arrays.asList("西", "西北"));
            put("水", Collections.singletonList("北"));
        }
    };

    /**
     * 出生年骨重（年干支为键）
     */
    public static final Map<String, Integer> YEAR_GU_ZHONG = new HashMap<String, Integer>() {
        private static final long serialVersionUID = -1;

        {
            put("甲子", 12); // 甲子年：一两二钱
            put("乙丑", 9);  // 乙丑年：九钱
            put("丙寅", 6);  // 丙寅年：六钱
            put("丁卯", 7);  // 丁卯年：七钱
            put("戊辰", 12); // 戊辰年：一两二钱
            put("己巳", 5);  // 己巳年：五钱
            put("庚午", 9);  // 庚午年：九钱
            put("辛未", 8);  // 辛未年：八钱
            put("壬申", 7);  // 壬申年：七钱
            put("癸酉", 8);  // 癸酉年：八钱
            put("甲戌", 15); // 甲戌年：一两五钱
            put("乙亥", 9);  // 乙亥年：九钱
            put("丙子", 16); // 丙子年：一两六钱
            put("丁丑", 8);  // 丁丑年：八钱
            put("戊寅", 8);  // 戊寅年：八钱
            put("己卯", 19); // 己卯年：一两九钱
            put("庚辰", 12); // 庚辰年：一两二钱
            put("辛巳", 6);  // 辛巳年：六钱
            put("壬午", 18); // 壬午年：八钱
            put("癸未", 7);  // 癸未年：七钱
            put("甲申", 5);  // 甲申年：五钱
            put("乙酉", 15); // 乙酉年：一两五钱
            put("丙戌", 6);  // 丙戌年：六钱
            put("丁亥", 16); // 丁亥年：一两六钱
            put("戊子", 15); // 戊子年：一两五钱
            put("己丑", 7);  // 己丑年：七钱
            put("庚寅", 9);  // 庚寅年：九钱
            put("辛卯", 12); // 辛卯年：一两二钱
            put("壬辰", 10); // 壬辰年：一两
            put("癸巳", 7);  // 癸巳年：七钱
            put("甲午", 15); // 甲午年：一两五钱
            put("乙未", 6);  // 乙未年：六钱
            put("丙申", 5);  // 丙申年：五钱
            put("丁酉", 14); // 丁酉年：一两四钱
            put("戊戌", 14); // 戊戌年：一两四钱
            put("己亥", 9);  // 己亥年：九钱
            put("庚子", 7);  // 庚子年：七钱
            put("辛丑", 7);  // 辛丑年：七钱
            put("壬寅", 9);  // 壬寅年：九钱
            put("癸卯", 12); // 癸卯年：一两二钱
            put("甲辰", 8);  // 甲辰年：八钱
            put("乙巳", 7);  // 乙巳年：七钱
            put("丙午", 13); // 丙午年：一两三钱
            put("丁未", 5);  // 丁未年：五钱
            put("戊申", 14); // 戊申年：一两四钱
            put("己酉", 5);  // 己酉年：五钱
            put("庚戌", 9);  // 庚戌年：九钱
            put("辛亥", 17); // 辛亥年：一两七钱
            put("壬子", 5);  // 壬子年：五钱
            put("癸丑", 7);  // 癸丑年：七钱
            put("甲寅", 12); // 甲寅年：一两二钱
            put("乙卯", 8);  // 乙卯年：八钱
            put("丙辰", 8);  // 丙辰年：八钱
            put("丁巳", 6);  // 丁巳年：六钱
            put("戊午", 19); // 戊午年：一两九钱
            put("己未", 6);  // 己未年：六钱
            put("庚申", 8);  // 庚申年：八钱
            put("辛酉", 16); // 辛酉年：一两六钱
            put("壬戌", 10); // 壬戌年：一两
            put("癸亥", 6);  // 癸亥年：六钱
        }
    };

    /**
     * 出生月骨重（月支为键）
     */
    public static final Map<String, Integer> MONTH_GU_ZHONG = new HashMap<String, Integer>() {
        private static final long serialVersionUID = -1;

        {
            put("寅", 6);  // 寅月（正月）：六钱
            put("卯", 7);  // 卯月（二月）：七钱
            put("辰", 18); // 辰月（三月）：一两八钱
            put("巳", 9);  // 巳月（四月）：九钱
            put("午", 5);  // 午月（五月）：五钱
            put("未", 16); // 未月（六月）：一两六钱
            put("申", 9);  // 申月（七月）：九钱
            put("酉", 15); // 酉月（八月）：一两五钱
            put("戌", 18); // 戌月（九月）：一两八钱
            put("亥", 8);  // 亥月（十月）：八钱
            put("子", 9);  // 子月（冬月）：九钱
            put("丑", 5);  // 丑月（腊月）：五钱
        }
    };

    /**
     * 出生日骨重（农历日为键）
     */
    public static final Map<String, Integer> DAY_GU_ZHONG = new HashMap<String, Integer>() {
        private static final long serialVersionUID = -1;

        {
            put("初一", 5);  // 初一：五钱
            put("初二", 10); // 初二：一两
            put("初三", 8);  // 初三：八钱
            put("初四", 15); // 初四：一两五钱
            put("初五", 16); // 初五：一两六钱
            put("初六", 15); // 初六：一两五钱
            put("初七", 8);  // 初七：八钱
            put("初八", 16); // 初八：一两六钱
            put("初九", 8);  // 初九：八钱
            put("初十", 16); // 初十：一两六钱
            put("十一", 9);  // 十一：九钱
            put("十二", 17); // 十二：一两七钱
            put("十三", 8);  // 十三：八钱
            put("十四", 17); // 十四：一两七钱
            put("十五", 10); // 十五：一两
            put("十六", 8);  // 十六：八钱
            put("十七", 9);  // 十七：九钱
            put("十八", 18); // 十八：一两八钱
            put("十九", 5);  // 十九：五钱
            put("二十", 15); // 二十：一两五钱
            put("廿一", 10); // 二十一：一两
            put("廿二", 9);  // 二十二：九钱
            put("廿三", 8);  // 二十三：八钱
            put("廿四", 9);  // 二十四：九钱
            put("廿五", 15); // 二十五：一两五钱
            put("廿六", 18); // 二十六：一两八钱
            put("廿七", 7);  // 二十七：七钱
            put("廿八", 8);  // 二十八：八钱
            put("廿九", 16); // 二十九：一两六钱
            put("三十", 6);  // 三十：六钱
        }
    };

    /**
     * 出生时辰骨重（时支为键）
     */
    public static final Map<String, Integer> HOUR_GU_ZHONG = new HashMap<String, Integer>() {
        private static final long serialVersionUID = -1;

        {
            put("子", 16); // 子时：一两六钱
            put("丑", 6);  // 丑时：六钱
            put("寅", 7);  // 寅时：七钱
            put("卯", 10); // 卯时：一两
            put("辰", 9);  // 辰时：九钱
            put("巳", 16); // 巳时：一两六钱
            put("午", 10); // 午时：一两
            put("未", 8);  // 未时：八钱
            put("申", 8);  // 申时：八钱
            put("酉", 9);  // 酉时：九钱
            put("戌", 6);  // 戌时：六钱
            put("亥", 6);  // 亥时：六钱
        }
    };

    /**
     * 男命骨重批注（骨重为键）
     */
    public static final Map<Integer, String> GU_ZHONG_PI_ZHU_WAN = new HashMap<Integer, String>() {
        private static final long serialVersionUID = -1;

        {
            put(21, "短命非业谓大空，平生灾难事重重。凶祸频临陷逆境，终世困苦事不成。");
            put(22, "身寒骨冷苦伶仃，此命推来行乞人。劳劳碌碌无度日，终年打拱过平生。");
            put(23, "此命推来骨肉轻，求谋做事事难成。妻儿兄弟实难靠，外出他乡做散人。");
            put(24, "此命推来福禄无，门庭困苦总难荣。六亲骨肉皆无靠，流浪他乡作老翁。");
            put(25, "此命推来祖业微，门庭营度似稀奇。六亲骨肉如冰炭，一世勤劳自把持。");
            put(26, "平生衣禄苦中求，独自营谋事不休。离祖出门宜早计，晚来衣禄自无休。");
            put(27, "一生作事少商量，难靠祖宗作主张。独马单枪空做去，早年晚岁总无长。");
            put(28, "一生行事似飘蓬，祖宗产业在梦中。若不过房改名姓，也当移徒二三通。");
            put(29, "初年运限未曾亨，纵有功名在后成。须过四旬才可立，移居改姓始为良。");
            put(30, "劳劳碌碌苦中求，东奔西走何日休。若使终身勤与俭，老来稍可免忧愁。");
            put(31, "忙忙碌碌苦中求，何日云开见日头。难得祖基家可立，中年衣食渐能周。");
            put(32, "初年运蹇事难谋，渐有财源如水流。到得中年衣食旺，那时名利一齐收。");
            put(33, "早年作事事难成，百计徒劳枉费心。半世自如流水去，后来运到得黄金。");
            put(34, "此命福气果如何，僧道门中衣禄多。离祖出家方为妙，朝晚拜佛念弥陀。");
            put(35, "生平福量不周全，祖业根基觉少传。营事生涯宜守旧，时来衣食胜从前。");
            put(36, "此命终身运不通，劳劳作事尽皆空。苦心竭力成家计，到得那时在梦中。");
            put(37, "此命般般事不成、弟兄少力自孤行。虽然祖业须微有，来得明时去不明。");
            put(38, "一身骨肉最清高，早入簧门姓氏标。待到年将三十六，蓝衫脱去换红袍。");
            put(39, "不须劳碌过平生，独自成家福不轻。早有福星常照命，任君行去百般成。");
            put(40, "平生衣禄是绵长，件件心中自主张。前面风霜多受过，后来必定享安康。");
            put(41, "此命推来事不同，为人能干异凡庸。中年还有逍遥福，不比前时运未通。");
            put(42, "得宽怀处且宽怀，何用双眉皱不开。若使中年命运济，那时名利一齐来。");
            put(43, "为人心性最聪明，作事轩昂近贵人。衣禄一生天数定，不须劳碌过平生。");
            put(44, "万事由天莫苦求，须知福禄命里收。少壮名利难如意，晚景欣然更不忧。");
            put(45, "名利推来竟若何，前番辛苦后奔波。命中难养男与女，骨肉扶持也不多。");
            put(46, "东西南北尽皆通，出姓移居更觉隆。衣禄无亏天数定，中年晚景一般同。");
            put(47, "此命推为旺末年，妻荣子贵自怡然。平生原有滔滔福，财源滚滚似水流。");
            put(48, "初年运道未曾亨，若是蹉跎再不兴。兄弟六亲皆无靠，一身事业晚年成。");
            put(49, "此命推来福不轻，自成自立显门庭。从来富贵人钦敬，使婢差奴过一生。");
            put(50, "为利为名终日劳，中年福禄也多遭。老来是有财星照，不比前番目下高。");
            put(51, "一世荣华事事通，不须劳碌自亨通。弟兄叔侄皆如意，家业成时福禄宏。");
            put(52, "一世荣华事事能，不须劳思自然宁。宗族欣然心皆好，家业丰亨自称心。");
            put(53, "此格推为气量真，兴家发达在其中。一生福禄安排定，却是人间一富翁。");
            put(54, "此命推来厚且清，诗书满腹看功成。丰衣足食自然稳，正是人间有福人。");
            put(55, "走马扬鞭争利名，少年作事费筹论。一朝福禄源源至，富贵荣华显六亲。");
            put(56, "此格推来礼义通，一身福禄用无穷。甜酸苦辣皆尝过，滚滚财源稳且丰。");
            put(57, "福禄丰盈万事全，一身荣耀乐天年。名扬威震人争羡，此世逍遥宛似仙。");
            put(58, "平生福禄自然来，名利兼全福寿偕。金榜题名为贵客，紫袍玉带走金阶。");
            put(59, "细推此格妙且清，必定才高礼义通。甲第之中应有分，扬鞭走马显威荣。");
            put(60, "一朝金榜快题名，显祖荣宗大器成。衣禄定然原裕足，田园财帛更丰盈。");
            put(61, "不作朝中金榜客，定为世上大财翁。聪明天赋经书熟，名显高科自是荣。");
            put(62, "此命生来福不穷，读书必定显亲宗。紫衣金带为卿相，富贵荣华熟与同。");
            put(63, "缘主为官福禄长，得来富贵实丰常。名题雁塔传金榜，大显门庭天下扬。");
            put(64, "此格威权不可当，紫袍金带尘高堂。荣华富贵谁能及？万古留名姓氏扬。");
            put(65, "细推此命福非轻，富贵荣华孰与争。定国安邦人极品，威声显赫震寰瀛。");
            put(66, "此格人间一福人，堆金积玉满堂春。从来富贵由天定，金榜题名更显亲。");
            put(67, "此命生来福自宏，田园家业最高隆。平生衣禄盈丰足，一世荣华万事通。");
            put(68, "富贵由天莫苦求，万金家计不须谋。如今不比前翻事，祖业根基千古留。");
            put(69, "君是人间衣禄星，一生富贵众人钦。总然福禄由天定，安享荣华过一生。");
            put(70, "此命推来福禄宏，不须愁虑苦劳心。荣华富贵已天定，正笏垂绅拜紫宸。");
            put(71, "此命生成大不同，公侯卿相在其中。一生自有逍遥福，富贵荣华极品隆。");
            put(72, "此格世界罕有生，十代积善产此人。天上紫微来照命，统治万民乐太平。");
        }
    };

    /**
     * 女命骨重批注（骨重为键）
     */
    public static final Map<Integer, String> GU_ZHONG_PI_ZHU_WOMAN = new HashMap<Integer, String>() {
        private static final long serialVersionUID = -1;

        {
            put(21, "短命非业谓大空，平生灾难事重重。凶祸频临陷逆境，终世困苦事不成。");
            put(22, "此命孤冷有凄伶，此命推来路乞人。操心烦脑度平日，一生育苦度光阴。");
            put(23, "此命推来骨肉轻，求财谋事事难成。弟妹六亲无有靠，繁绱家事难以持。");
            put(24, "此命推来福禄无，家务辛苦难以扶。丈夫儿女皆无靠，流落他乡作游孤。");
            put(25, "此命推来八字轻，六庭艰辛多苦凄。娘家六友冷如灰，一生操劳多忧心。");
            put(26, "平生衣禄苦寻求，女命生来带忧愁。辛酸苦辣他尝过，晚年衣钵本无忧。");
            put(27, "竹平做事少间量，难靠夫君做主张。心问口来口问心，自做主张过光阴。");
            put(28, "女命生来八字经，得善做事一无情。你把别人当亲生，别人对你假殷情。");
            put(29, "花枝要来性情硬，自奔自立不求人。若向求财方可止，有苦有甜度光阴。");
            put(30, "此命推来比郎强，婚姻大事碍无防。中年走过坎坷运，末年渐比先前强。");
            put(31, "早年行运在忙碌，劳碌奔波苦中求。自奔自愁把家立，后来晚景无忧愁。");
            put(32, "时逢吉神在运中，纵有凶处不为凶。真变假来假变真，结拜弟妹当亲生。");
            put(33, "八字命来张张薄，勤俭持家皆可过。年华巴如流水过，末年运至受福禄。");
            put(34, "矮巴勾枣难捞枝，好人寻命不投机。谋望献身最费力，婚姻同移总是虚。");
            put(35, "女子走冰怕冰薄，交易出行犯琢磨。婚姻周郎休此意，官司口舌须要知。");
            put(36, "忧愁常锁两眉间，女命万绪挂心头。从今以后防口角，任意行而不相天。");
            put(37, "此命来时运费多，此作推车受折磨。山路崎岖吊下耳，左插右安安不着。");
            put(38, "凤鸣岐山闻四方，女命逢之大吉昌。走失夫君音有信，晚年衣禄人财多。");
            put(39, "此命推来运不通，劳碌奔波一场空。好似俊鸟关笼中，中年末限起秋风。");
            put(40, "目上月令如运关，千心万苦受煎熬。女子苦难受过来，晚年福康比花艳。");
            put(41, "此命推来一般般，女子为人很非凡。中年逍遥多自在，晚年更比中年强。");
            put(42, "枯井破废已多年，一朝泉水出来鲜。资生济竭人称美，来运转喜自然时。");
            put(43, "推车靠涯道路赶，女命求财也费难。婚姻出行无阴碍，疾病口舌多安宁。");
            put(44, "夜梦金银醒来空，女子谋事运不能。婚姻难成交易获，夫君走失不见踪。");
            put(45, "此命终身驳杂多，六亲骨肉不相助。命中男妇都难养，劳碌辛苦还奔波。");
            put(46, "孤舟得水离沙滩，女命出外早远家。是非口舌皆无碍，婚姻合伙更不差。");
            put(47, "时来运转吉气发，多年枯木又开花。枝叶重生多茂盛，凡人见了凡人夸。");
            put(48, "一朵鲜花镜中开，看着极好取不来。劝你休把镜花想，女命推业主可怪。");
            put(49, "此命推来福不轻，女子随君显门庭。容貌美满热人爱，银钱富足过一生。");
            put(50, "马氏太公不相和，好命逢之尤凝多。恩人无义反成怨，是非平地起风波。");
            put(51, "肥羊失群入山岗，饿虎逢之把口张。适口充肠心欢喜，女名八安大吉昌。");
            put(52, "顺风行舟扯起棚，上天又助一顺风。不用费力逍遥去，任意而行大亨通。");
            put(53, "此命相貌眉活秀，文武双全功名成。一生衣禄皆无愁，可算世上有福人。");
            put(54, "学问满腹运气强，谋望求财大吉祥。交易出行大得意，是非口舌皆无妨。");
            put(55, "吉祥平安志量高，女命求财任逍遥。交易婚姻大有意，夫君在外有音耗。");
            put(56, "明珠书士离埃来，女命口角消散开。走失郎君当两归，交易有成水无灾。");
            put(57, "游鱼戏水被网惊，跳过龙门秧化龙。三根杨柳垂金线，万朵桃花显价能。");
            put(58, "此命推来转悠悠，时运未来莫强求。幸得今日重反点，自有好运在后头。");
            put(59, "雨雪载途泥泞至，交易不定难出行。疾病还拉慢婚姻，谋望求财事不成。");
            put(60, "女命八字喜气和，谋望求财吉庆多。口舌渐消疾病少，夫君走失归老窝。");
            put(61, "缘木求鱼事多端，虽不得鱼无后害。若是行险弄巧地，事不遂心枉安排。");
            put(62, "指日升高气象新，走失待人有音信。好命遇事遂心好，伺病口舌皆除根。");
            put(63, "五官脱运难抬头，女命须当把财求。交易少行有人助，疾病口舌不须愁。");
            put(64, "俊鸟曾得出笼中，脱离灾难显威风。一朝得意福立至，东南西北任意行。");
            put(65, "此命推来福不轻，慈善为事受人敬。天降文王开基业，富贵荣华八百年。");
            put(66, "时来运转锐气周，贤惠淑女君子求。钏鼓乐之大吉庆，女名逢之吉悠悠。");
            put(67, "乱丝无头定有头，碰着闲磨且暂推。交易出有无好处，谋事求财心不遂。");
            put(68, "水庭明月不可捞，女命早限命不高。交易出行难获得，末限命运渐渐好。");
            put(69, "太公封祖不非凡，女子求财稳如山。交易合伙大吉庆，疾病口角消除安。");
            put(70, "此命推来喜气新，郎君遇着多遂心。女命交了顺当运，富贵衣禄平乐生。");
            put(71, "此命推来鸿运交，再不需愁来苦劳。一生身有衣禄福，按享荣华在其中。");
        }
    };

    /**
     * 男女日主正财（日干为键）
     */
    public static final Map<String, List<String>> RI_ZHU_ZHENG_CAI = new HashMap<String, List<String>>() {
        private static final long serialVersionUID = -1;

        {
            put("甲", Arrays.asList("己", "丑", "未"));
            put("乙", Arrays.asList("戊", "辰", "戌"));
            put("丙", Arrays.asList("辛", "酉"));
            put("丁", Arrays.asList("庚", "申"));
            put("戊", Arrays.asList("癸", "亥"));
            put("己", Arrays.asList("壬", "子"));
            put("庚", Arrays.asList("乙", "卯"));
            put("辛", Arrays.asList("甲", "寅"));
            put("壬", Arrays.asList("丁", "巳"));
            put("癸", Arrays.asList("丙", "午"));
        }
    };

    /**
     * 男女日主偏财（日干为键）
     */
    public static final Map<String, List<String>> RI_ZHU_PIAN_CAI = new HashMap<String, List<String>>() {
        private static final long serialVersionUID = -1;

        {
            put("甲", Arrays.asList("戊", "辰", "戌"));
            put("乙", Arrays.asList("己", "丑", "未"));
            put("丙", Arrays.asList("庚", "申"));
            put("丁", Arrays.asList("辛", "酉"));
            put("戊", Arrays.asList("壬", "子"));
            put("己", Arrays.asList("癸", "亥"));
            put("庚", Arrays.asList("甲", "寅"));
            put("辛", Arrays.asList("乙", "卯"));
            put("壬", Arrays.asList("丙", "午"));
            put("癸", Arrays.asList("丁", "巳"));
        }
    };

    /**
     * 男日主正财（日干为键）
     */
    public static final Map<String, List<String>> NAN_RI_ZHU_ZHENG_TAO_HUA = new HashMap<String, List<String>>() {
        private static final long serialVersionUID = -1;

        {
            put("甲", Arrays.asList("己", "丑", "未"));
            put("乙", Arrays.asList("戊", "辰", "戌"));
            put("丙", Arrays.asList("辛", "酉"));
            put("丁", Arrays.asList("庚", "申"));
            put("戊", Arrays.asList("癸", "亥"));
            put("己", Arrays.asList("壬", "子"));
            put("庚", Arrays.asList("乙", "卯"));
            put("辛", Arrays.asList("甲", "寅"));
            put("壬", Arrays.asList("丁", "巳"));
            put("癸", Arrays.asList("丙", "午"));
        }
    };

    /**
     * 男日主偏财（日干为键）
     */
    public static final Map<String, List<String>> NAN_RI_ZHU_PIAN_TAO_HUA = new HashMap<String, List<String>>() {
        private static final long serialVersionUID = -1;

        {
            put("甲", Arrays.asList("戊", "辰", "戌"));
            put("乙", Arrays.asList("己", "丑", "未"));
            put("丙", Arrays.asList("庚", "申"));
            put("丁", Arrays.asList("辛", "酉"));
            put("戊", Arrays.asList("壬", "子"));
            put("己", Arrays.asList("癸", "亥"));
            put("庚", Arrays.asList("甲", "寅"));
            put("辛", Arrays.asList("乙", "卯"));
            put("壬", Arrays.asList("丙", "午"));
            put("癸", Arrays.asList("丁", "巳"));
        }
    };

    /**
     * 女日主正财（日干为键）
     */
    public static final Map<String, List<String>> NV_RI_ZHU_ZHENG_TAO_HUA = new HashMap<String, List<String>>() {
        private static final long serialVersionUID = -1;

        {
            put("甲", Arrays.asList("辛", "酉"));
            put("乙", Arrays.asList("庚", "申"));
            put("丙", Arrays.asList("癸", "亥"));
            put("丁", Arrays.asList("壬", "子"));
            put("戊", Arrays.asList("乙", "卯"));
            put("己", Arrays.asList("甲", "寅"));
            put("庚", Arrays.asList("丁", "午"));
            put("辛", Arrays.asList("丙", "巳"));
            put("壬", Arrays.asList("己", "丑", "未"));
            put("癸", Arrays.asList("戊", "辰", "戌"));
        }
    };

    /**
     * 女日主偏财（日干为键）
     */
    public static final Map<String, List<String>> NV_RI_ZHU_PIAN_TAO_HUA = new HashMap<String, List<String>>() {
        private static final long serialVersionUID = -1;

        {
            put("甲", Arrays.asList("庚", "申"));
            put("乙", Arrays.asList("辛", "酉"));
            put("丙", Arrays.asList("壬", "子"));
            put("丁", Arrays.asList("癸", "亥"));
            put("戊", Arrays.asList("甲", "寅"));
            put("己", Arrays.asList("乙", "卯"));
            put("庚", Arrays.asList("丙", "巳"));
            put("辛", Arrays.asList("丁", "午"));
            put("壬", Arrays.asList("戊", "辰", "戌"));
            put("癸", Arrays.asList("己", "丑", "未"));
        }
    };

    /**
     * 交运天干（天干为键）
     */
    public static final Map<String, String> JIAO_YUN_GAN = new HashMap<String, String>() {
        private static final long serialVersionUID = -1;

        {
            put("甲", "甲、己");
            put("乙", "乙、庚");
            put("丙", "丙、辛");
            put("丁", "丁、壬");
            put("戊", "戊、癸");
            put("己", "己、甲");
            put("庚", "庚、乙");
            put("辛", "辛、丙");
            put("壬", "壬、丁");
            put("癸", "癸、戊");
        }
    };

    /**
     * 日柱论命（日柱为键）
     */
    public static final Map<String, String> RI_ZHU_LUN_MING = new HashMap<String, String>() {
        private static final long serialVersionUID = -1;

        {
            put("甲子", "多学少成，防止有始无终；心性暴躁，幼年多灾。重拜父母，饮食保养；兄弟骨肉少靠，有子多刑。男人妻大，女人夫长；伶俐聪明贤能；受人尊重，人际关系需权衡得当。");
            put("乙丑", "慷慨大方，喜爱春风，多学少成，幼年现灾，父母重拜；九流中人，夫妻无刑，儿女不孤，六亲少靠；女人贤良纯和，但求财心切，要关照家庭。");
            put("丙寅", "多学少成，心性不定；口快舌硬，身闲心直，手足不停，利官近贵，女人贤良，聪明伶俐，辛勤收获。");
            put("丁卯", "手足不停，身心不闲，内外有劳，衣禄不少，性巧聪明，做事有头少尾，男人福份之命，女人企图宁静，操劳中有幸而获，防不知足。");
            put("戊辰", "喜气春风，利官近贵，骨肉刑伤，儿女不孤，女人温良贤达，有口无心，乌鸦嘴豆腐心，主招好夫，需防止他人误会。");
            put("己巳", "聪明才智，手足伶俐，小有功名，做事如意；夫妻和睦相处，诸事可为；女人衣食住行不缺，善良待人；男人多出风头，小有计谋，资性英敏，福厚之命。");
            put("庚午", "口快心直，利官近贵，小有殊荣，衣禄丰盈。男人权柄，辛勤持家，外面固执，有人钦佩；女人秀气，略显美感，荣夫益子，邻里钦佩。");
            put("辛未", "生有志气，心性宽容尚仁义，少年灾病；中年略好，头胎见女更吉，生男有刑克；夫妻和睦相处，事业顺利；女人持家方兴旺，男人顾家多利业。");
            put("壬申", "性巧聪明，才智少显，计谋多变，诚信待人接物功名有份；有贤妻子，为人英敏，受人喜欢；女人美丽，博得人助！阶段富贵，荣华自珍！福气子孙。");
            put("癸酉", "心直公平，伶牙俐齿，防言多失；衣禄自俭，有备无患，平稳足用；六亲冷淡，自谋求生；社会交往，多有人爱，虽事不成，少取勿贪，百业可为；女人助夫，勤俭持家，晚年享福。");
            put("甲戌", "口快舌伶，身闲心不空，少年贫民，中年奔波，略有权职，心机谋略，多学少成，小有名声；晚景福禄延年，自珍自爱益寿；助人惹怨，妒嫉常伴随而来。");
            put("乙亥", "为人和顺，幼年多灾，父母有刑，诚实待人接物，出外稍好；女人夫好，和睦相处、偕老，存心中正，中年财旺，防劳致病；婚迟子晚，子女防克，重拜义母，严教成才。");
            put("丙子", "胆大言广，有权谋，心机诡诈，早年平平，中年成就，晚景大好，女人饶舌，言多有失，安分守己，避免麻烦，福气自到。");
            put("丁丑", "为人和睦，衣禄不愁，初年有旺禄常在，晚景大好，更有结余，婚迟子晚，夫妻和睦相处，则百事顺利。女人旺夫爱子，孝敬，持家贤良。");
            put("戊寅", "性格猛烈，刚强招祸，易快易冷，交往闲杂，小人无情；早年勤俭，离祖发达，聪明才智，手足伶俐；晚年大有良机，不可莽撞，得安宁，有幸福。");
            put("己卯", "为人交往广泛，风流倜倘、豪杰，衣禄丰足，闲情逸致，嬉戏娱乐，有人遵从；六亲冷淡，自立为上，骨肉难为，妻招年长，配偶和睦；女人注意邻居关系，自我解脱，旷达胸怀，长寿，亲族贤达。");
            put("庚辰", "春风和气，劳禄霜雪一生，利官近贵，名利双全，衣食足用；中年平顺，晚年大兴，女人勤俭，持家有方，受人敬仰，坎坷风波。个别命运身体衰弱，注意健康，追求安全的人生。");
            put("辛巳", "友善机谋，能应变，志气过人，衣食足用；有贵人扶助，中年和顺，老有福运，心安理得，知足常乐，有长寿命。");
            put("壬午", "为人勤俭，父母刑伤，早年财物不顺利，存储不多，中年劳心，稍有所得，晚景旺子，事应积蓄，防备缺乏。女人兴家，贤能自达，恒心有获。");
            put("癸未", "心急口快，为人伶俐；救人无恩，反招是非，曲直难辩，多有误会。有财无库，过眼烟云，财来财去，精打细算，可免祸灾；女人贤慧，勤俭持家；晚景平安。");
            put("甲申", "衣禄不少，心性温柔，出入有为，技压群芳，初年不顺，中年劳神，晚景利达；夫妻和顺，儿女迟到，女人操劳，忍耐莫逆，家事平安。");
            put("乙酉", "口快心直，轩昂大方，乐观，衣禄足用，兄弟虽有，难为助力；与人为善，事业成功；女人兴旺，小有蓄财，平稳，追寻安康生活。");
            put("丙戌", "性情温和，技艺护身，衣禄不愁，豪杰和顺，自能有财；独立家业；前运不周，利益不顺，中年操劳，钱财有进；晚年荣华。女人中年奔波，辛苦求财，老年稍微聚财发旺，珍惜为盼。");
            put("丁亥", "性巧聪明，小有才智；独立自营，奔波操劳，儿女有利，见迟方好；好为善事，稍微旺财；女人贞节自爱，得贵人帮助，幸有财运，衣禄平稳。");
            put("戊子", "计算聪明，才智有余，文武两通，儿女早产防克；结婚当晚，财运良好，运气颇佳，用情不专，家花、野花，警慎为佳！女人自珍，贤慧发福。");
            put("己丑", "口快心直，通技艺人，能掌实权，诚意待人，博得众望，衣禄不少；男人防再娶，家庭当和睦相处，女人晚年发福。");
            put("庚寅", "心性急快，有口无心，大事有藏；易好易怒，性情反复无常，伤人还不知道；易结人缘，也易失人缘，衣禄足用；早年不聚财物，中年奔波，晚景丰隆，女人内助，理事发达，勤俭有得。");
            put("辛卯", "口快心直，有志气，有权柄，利官近贵，身闲心不空；六亲少靠，自立家业，少年劳禄，晚年大利；女人持家，操劳，勤俭节约可兴隆。");
            put("壬辰", "劳禄之人，手脚停不下来；早年难守，财来财去，晚景发达。女人操家，勤奋兴旺。");
            put("癸巳", "聪明伶俐，近贵人，中年风霜，春风之徒；慎重守护已成之事业，可暂发福；好心对人，却被人反目，晚景渐佳。");
            put("甲午", "为人和气，好娱乐；青春好风荡，交往朋友，利官近贵，逢凶化吉，骨肉少靠。女人口快，心直能言；爱情上需防祸不单行。");
            put("乙未", "少年勤俭，初年平顺；兄弟少靠；子息不孤；晚年聚财，可以兴旺；女人持家，恩夫旺子，精打细算。");
            put("丙申", "衣食丰足，利路亨通，技能生财；早年劳禄，女人持家，勤俭节约，旺相发达。");
            put("丁酉", "喜好面子，多情重恩，缘份奇特；利官近贵，初年劳累，身闲心苦。晚年兴隆，子女有为；女人清秀吉昌，半夫半财，自立成功。");
            put("戊戌", "为人和气，独立自营；早年颠倒运程，是非耗财；中年贪求，欲望高昂，遭人妒嫉。自重；苦学技艺，学有工夫之命。女人育养，中平之命运。");
            put("己亥", "计巧伶俐，衣食安稳，骨肉少力，六亲冷淡，儿女早见刑克，迟到稍好；夫妻和顺。女人清闲，晚景顺遂。");
            put("庚子", "持重，安稳，衣禄无亏，妻子贤慧，持家有方，建交贵人，提拔机遇，逢凶化吉。女人兴旺，福荫家庭。");
            put("辛丑", "心性温和，早年须防惊恐，意外之厄；虽有衣禄，骨肉少力，晚年好，女人旺家，事多发达。");
            put("壬寅", "为人口快心直，男女都不能早结婚，若早婚夫妻便相克。儿女宜迟，初年颠倒，中年兴旺。女人如意，发福之命。");
            put("癸卯", "衣食不少，凶中化吉，早年不顺，财来财去，晚年好。女人操持之命，遭遇妒嫉，好事难全，少年弱，中年劳禄，老有欢乐。");
            put("甲辰", "衣食丰足，清闲心情；早年弱，中年勤奋，情感有波折，事业发达，晚结婚，子女宜迟，帮助多。");
            put("乙巳", "为人好面子，救人无功；好事莫望；早年子女刑克，晚年安宁。女人助夫爱子。");
            put("丙午", "身闲心不空，初年耗财，宜做基础，技能工夫，求名不利，事多争端，兄弟各方。女人清秀，思维奇妙。");
            put("丁未", "喜怒无常，口舌能言，名利不缺，骨肉疏远，子息迟到；衣禄丰足；女人有旺运，勤俭能兴家。");
            put("戊申", "为人性急，易反复无常；一生劳禄，利官见贵，儿女刑伤，财库富足，女人有旺运，勤俭能兴家。");
            put("己酉", "为人聪明，衣禄丰足，六亲少靠，儿女早见；凡事宽量，百事通达，女人技巧多变，少灾之命。");
            put("庚戌", "为人快活，丑未防灾；利官近贵，敏捷聪明，福气晚年，救人无义；女人心贤，勤奋方能兴家。");
            put("辛亥", "不惹闲事，清静守中；早年不聚财，晚景荣华富贵。女人勤俭，福丰，助立家业。");
            put("壬子", "幼年显灾，中年衣食丰足，男有好妻，身闲心劳，多喜多忧，奔波事业；兄弟少力，六亲冷淡，勤奋自立；女人贤能，提防嫉妒之心。");
            put("癸丑", "衣禄不少，一生得人尊重；莫惹是非，父母难为。骨肉少靠，夫妇和睦相处，顺利，儿女见迟；财物早年难聚，波折。");
            put("甲寅", "为人诚实，利官见贵。家道兴盛，父母有利，重拜双亲。男人怕妻，命硬三分。女人管夫，子息兴旺。");
            put("乙卯", "志气轩昂，衣禄丰足，计巧精妙，言行有诈，有成有败；文武两业，坎坷难免，金石为开，一事可成，女人福气，勤俭添寿。");
            put("丙辰", "聪明才智，手足伶俐，衣禄无亏；身闲心劳，爱交朋友，中年兴隆，女人贤能，勤俭建家。");
            put("丁巳", "为人刚强，利官近贵，个性乖巧，不易顺从；兄弟居长，事业显荣。女人贤慧，勤奋发达，热诚事业，防有头无尾，宜精益求精，专心致志，精打细算。");
            put("戊午", "为人温良，志气宽宏，衣禄丰足；少年多灾，骨肉有刑，夫妻显克；女人亲属少帮；中年勤奋，有收获；夫妻性格欠协调，影响健康，老可无忧，子女孝顺。");
            put("己未", "口快舌硬，衣禄小有，得贵人帮，勤奋敬业，精打细算，财源不绝。交往朋友，避免闲杂。");
            put("庚申", "手足不停，为人清高，利官近贵。夫妻口角，烦多爱少。做好事难得好报，救人无功，遭遇妒忌。女人兴家，六亲冷淡。");
            put("辛酉", "为人伶俐，面气清爽，艰辛创业，自谋高见，口舌能言，高人敬重，财力广大，六亲冷淡，骨肉情疏，女人贤达。");
            put("壬戌", "好行善事，四处不停，心劳尤多，衣食不缺，结交贵人，提拔事业，早年平，中年劳，晚年好;女人贤慧，操劳兴家。");
            put("癸亥", "为人刚直，言语坦然，不顺人情；六亲疏远，交往淡淡；自立家业，女人缘旺，家庭坎坷，诚信待人，慎重欺诈；多注意自身健康。");
        }
    };

    /**
     * 命卦（命卦宫位为键）
     */
    public static final Map<Integer, String> MING_GUA = new HashMap<Integer, String>() {
        private static final long serialVersionUID = -1;

        {
            put(1, "坎卦（东四命）");
            put(2, "坤卦（西四命）");
            put(3, "震卦（东四命）");
            put(4, "巽卦（东四命）");
            put(5, ""); // 男命为坤卦（西四命）。女命为艮卦（西四命）。
            put(6, "乾卦（西四命）");
            put(7, "兑卦（西四命）");
            put(8, "艮卦（西四命）");
            put(9, "离卦（东四命）");
        }
    };

    /**
     * 五行分析（年柱纳音五行为键）
     */
    public static final Map<String, String> WU_XING_FEN_XI = new HashMap<String, String>() {
        private static final long serialVersionUID = -1;

        {
            put("木", "木主仁，温柔随和，待人友善，富有同情心，有很强的正义感，能够结识到比较不错的朋友。在事业上认真踏实，但事业心并不强，为人处事乐观豁达，但是有时候会太过固执，而在无形中得罪人。");
            put("火", "火主礼，热情乐观，开朗大度，永远都精神饱满，遇事总会冲在最前方，待人谦虚淳朴，讲礼貌，也因此而受到大家的尊敬。但是也会因为太过于冲动，而失去理智，做事不计较后果，得罪人。");
            put("土", "土主信，为人厚道，信守承诺，处事大度，懂得知恩图报，对待父母非常孝顺。在生活中哪怕自己吃亏，也不会去占别人的便宜，常常受到大家的信赖。不过有时也固执己见，八匹马也拉不回来，缺乏变通。");
            put("金", "金主义，爱憎分明，嫉恶如仇，做事果断认真，具有远见，且有较强的组织能力。很重视情义，朋友有事，定会竭尽所能的去帮助。不过遇事会过于急躁，喜欢以自我为中心。");
            put("水", "水主智，足智多谋，聪明好学，深谋远虑。无论做什么事情都是非常有计划性的，绝不会盲目的去做。在生活中见多识广，人缘好，朋友多，对待感情很专一。不过由于做事太细致，会出现犹豫不决的情况，不敢去冒风险。");
        }
    };

    /**
     * 运势分析（地支为键）
     */
    public static final Map<String, String> YUN_SHI_FEN_XI = new HashMap<String, String>() {
        private static final long serialVersionUID = -1;

        {
            put("子", "缘主出生在子时，通常具有敏锐的直觉和判断力，善于捕捉机遇。他们性格刚强，富有冒险精神，适合从事需要创新和挑战的工作。在事业上，他们往往能够白手起家，通过自己的努力取得成功。此外，子时出生的人还具有不错的桃花运，容易吸引异性的注意。需注意避免性急和反复不定的性格缺陷，以免错失良机或得罪他人。同时，他们也要保持谦逊和勤奋的态度，不断学习和提升自己。");
            put("丑", "缘主出生在丑时，通常财运亨通，容易积累财富。他们性格温和，待人真诚，容易赢得他人的信任和好感。在事业上，他们往往能够得到贵人的帮助和支持，从而取得不错的成就。此外，丑时出生的人还具有较强的家庭责任感，能够照顾好家人和亲友。需注意避免过于依赖他人的帮助和支持，要学会独立思考和解决问题。同时，他们也要注意保持健康的生活方式和良好的心态。");
            put("寅", "缘主出生在寅时，通常不畏困难、勇往直前的精神。他们在事业上往往能够取得较大的成就和突破。此外，寅时出生的人还具有较强的领导能力和组织才能，适合从事管理和领导工作。需注意避免与家人和亲友产生隔阂和矛盾，要加强沟通和理解。同时，他们也要注意保持谦逊和低调的态度，避免因为过于自信而得罪他人。");
            put("卯", "缘主出生在卯时，通常具有旺盛的精力和敏锐的洞察力，能够迅速适应新环境并抓住机遇。他们性格中带有一种坚韧不拔的毅力，无论遇到多大的困难都能坚持到底。在事业上，他们往往能够凭借自己的努力和智慧，开创出一片属于自己的天地。虽然拥有出色的能力和潜力，但也要注意避免因过于急躁或冲动而做出错误的决策。同时，他们应该学会放松自己，保持身心的平衡，以免过度劳累影响健康。");
            put("辰", "缘主出生在辰时，通常性格开朗、乐观向上，具有很强的感染力和号召力。他们善于与人交往，能够迅速建立广泛的人脉关系。在事业上，他们往往能够凭借自己的人际关系和社交能力，获得他人的支持和帮助，从而取得不错的成就。虽然人缘好、机会多，但也要注意避免过于依赖他人或陷入不必要的纷争之中。同时，他们应该保持谦逊和谨慎的态度，不断学习和提升自己的专业技能和素养。");
            put("巳", "缘主出生在巳时，通常聪明伶俐、机智过人，具有很强的学习能力和适应能力。他们善于思考和分析问题，能够迅速找到解决问题的关键所在。在事业上，他们往往能够凭借自己的智慧和才华，在竞争中脱颖而出并取得成功。虽然才华横溢、能力出众，但也要注意避免因过于自信或骄傲自满而失去谦逊和谨慎的态度。同时，他们应该保持对知识的渴望和追求，不断学习和充实自己以应对未来的挑战。");
            put("午", "缘主出生在午时，通常性格开朗大方、待人真诚热情。他们具有很强的正义感和责任心，能够勇于承担责任并为他人着想。在事业上，他们往往能够凭借自己的魅力和领导力带领团队取得不错的成绩。虽然人缘好、领导力强，但也要注意避免因过于直率或冲动而得罪他人或引发不必要的矛盾。同时，他们应该保持对工作的热情和投入度，避免因为过于放松或懈怠而影响工作效率和成果。");
            put("未", "缘主出生在未时，通常性格温和、稳重，富有耐心和毅力。他们善于倾听和理解他人，具有很强的同理心。在事业上，他们可能会选择稳定的职业道路，通过持续的努力和积累来逐步取得成功。家庭生活中，他们也是可靠的伴侣和负责任的家长。需要警惕自己可能过于保守或缺乏冒险精神，有时需要勇敢地迈出舒适区去尝试新事物。");
            put("申", "缘主出生在申时，通常聪明机智，反应迅速，具有很强的适应能力和学习能力。他们善于观察和分析，能够迅速抓住问题的关键。在事业上，他们往往能够凭借自己的智慧和才华在竞争中脱颖而出。同时，他们也是社交达人，能够轻松地与他人建立联系。需要注意不要过于急躁或急功近利，要学会沉淀和积累，以稳健的步伐走向成功。");
            put("酉", "缘主出生在酉时，通常性格独立、自主，具有很强的自我驱动力。他们对自己的目标和理想有着清晰的认识，并会为之不懈奋斗。在事业上，他们往往是行业的佼佼者，能够凭借自己的才华和努力取得显著的成就。同时，他们也是家庭中的支柱，能够为家人提供坚实的依靠。需要注意平衡工作和生活的关系，避免因为过于专注于事业而忽略了家庭和个人生活。");
            put("戌", "缘主出生在戌时，通常性格忠诚、正直，具有很强的责任感和使命感。他们对待工作和生活都非常认真和投入，能够承担起自己的责任并努力完成任务。在事业上，他们往往能够凭借自己的努力和诚信赢得他人的信任和尊重。同时，他们也是家庭中的守护者，能够为家人提供安全和稳定的环境。需要注意不要过于固执或顽固，要学会灵活变通和接受他人的意见和建议。");
            put("亥", "缘主出生在亥时，通常拥有深厚的智慧与敏锐的洞察力，能够洞察事物的本质。他们性格温和，待人友善，容易赢得他人的好感与信任。在事业上，他们往往能够凭借自己的才华和努力，取得不俗的成就。财运方面也相对较好，容易积累财富。虽然运势整体不错，需要注意自己的情绪波动，避免因情绪化而做出冲动的决定。同时，要保持谦逊和勤奋的态度，不断学习和提升自己，以应对未来的挑战。");
        }
    };

    /**
     * 十神性格分析（十神为键）
     */
    public static final Map<String, String> SHI_SHEN_XING_GE_FEN_XI = new HashMap<String, String>() {
        private static final long serialVersionUID = -1;

        {
            put("偏印", "小众奇特");
            put("正印", "谦虚温和");
            put("食神", "随性厚道");
            put("伤官", "高傲尖锐");
            put("七杀", "果断霸道");
            put("正官", "严肃认真");
            put("偏财", "慷慨豪放");
            put("正财", "世故保守");
            put("比肩", "自信刚强");
            put("劫财", "好争性急");
        }
    };


}
